1. 程式人生 > >java規範(二)------方法呼叫---springMVC中呼叫controller的方法

java規範(二)------方法呼叫---springMVC中呼叫controller的方法

我們有一個路由StudentController,裡面有一個方法count()。如果要在另外一個GradeController中呼叫count()方法有2種方式:

因為StudentController是一個class,不是介面,介面一般都是@Autowired注入就能呼叫。

new一個例項呼叫

比如在GradeController的方法中new一個StudentController然後呼叫。

StudentController   studentController=new StudentController ();
int count=studentController.count();

即可。

這種情況是在 count方法中 沒有使用 其它@Autowired引入的介面service的情況下。否則會報錯空指標。因為new 出來的例項是不帶StudentController中注入的。

如果count方法中使用了 其它@Autowired引入的介面service,則需要修改一下,把這個service作為引數傳入count方法中。

GradeController中也需要@Autowired引入的介面service,然後

@Autowired
Service  service;
StudentController   studentController=new StudentController ();
int count=studentController.count(service);

如果呼叫的service太多,則需要傳入 改動的地方就比較多。

@Autowired註解呼叫(推薦)

我們不new一個例項,直接把StudentController 自動註解進 GradeController即可直接使用,這種情況下,StudentController @Autowired引入的介面service也會自動注入。

也就是在GradeController中:

@Autowired
StudentController  studentController ;
int count=studentController.count();

即可。