java - @Autowired注入了dao,为什么还要写getDao(){return userDao}这个方法?有什么作用?
阿神
阿神 2017-04-18 10:31:56
0
5
448
@Autowired
private UserDao userDao;

@Override
public BaseDao<User> getDao() {
    return userDao;
}

请问这个getDao有什么作用?  我试着删除这个getDao方法,一样可以运行,没问题,而且用Autowired已经注入了装配了bean交给了spring去管理。  求指导
阿神
阿神

闭关修行中......

全部回覆(5)
PHPzhong

例如你寫的程式碼叫UserService,有個其他的service依賴UserService同時也依賴UserDao,就不需要在這個service中對UserDao也@Autowired。
要是刪除沒問題就刪了唄,其實並沒有什麼用。
順便說一下,構造器注入比屬性注入性能更好

洪涛

自動產生的程式碼,沒什麼用。

伊谢尔伦

不用這個,反射完全可以跨越訪問權(private)给字段设置值,所以set方法其實不需要也可以。

左手右手慢动作

你這個應該是重寫的父類BaseDao的方法getDao(),其目的是 供給在父類BaseDao中定義的方法以獲得Dao對象
比如說,父類中有一個方法

public void test(BaseEntity entity){
    getDao().insert(entity);//在这里,父类通过getDao可以获取子类的Dao实现多态
}

此時你如果把這個重寫的方法刪除就會出現問題

Peter_Zhu

不知道用的什麼版本的spring
推薦構造器注入

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板