java - @Autowired注入了dao,为什么还要写getDao(){return userDao}这个方法?有什么作用?
阿神
阿神 2017-04-18 10:31:56
0
5
447
@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
推荐构造器注入

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板