java規範(二)------方法呼叫---springMVC中呼叫controller的方法
阿新 • • 發佈:2019-02-10
我們有一個路由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();
即可。