猿问

@Autowired注入了dao,为什么还要写getDao(){return userDao}这个方法?有什么作用?

@Autowired
private UserDao userDao;

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

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

繁华开满天机

比如你写的代码叫UserService,有个其他的service依赖UserService同时也依赖UserDao,就不需要在这个service中对UserDao也@Autowired。要是删除没问题就删了呗,其实并没有什么用。顺便说一下,构造器注入比属性注入性能更好

沧海一幻觉

自动生成的代码,没什么用。

拉莫斯之舞

不用这个,反射完全可以跨越访问权(private)给字段设置值,所以set方法其实不需要也可以。

HUH函数

你这个应该是重写的父类BaseDao的方法getDao(),其目的是 供给在父类BaseDao中定义的方法以获得Dao对象比如说,父类中有一个方法 public void test(BaseEntity entity){ getDao().insert(entity);//在这里,父类通过getDao可以获取子类的Dao实现多态 } 此时你如果把这个重写的方法删去就会出现问题

慕尼黑的夜晚无繁华

不知道用的什么版本的spring推荐构造器注入
随时随地看视频慕课网APP

相关分类

Java
我要回答