为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Helenr 2019-02-19 12:05:32
@Autowired private UserDao userDao; @Override public BaseDao<User> getDao() { return userDao; } 请问这个getDao有什么作用? 我试着删除这个getDao方法,一样可以运行,没问题,而且用Autowired已经注入了装配了bean交给了spring去管理。 求指导
查看完整描述

5 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-01
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-03-01
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

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

查看完整回答
反对 回复 2019-03-01
?
HUH函数

TA贡献1836条经验 获得超4个赞

你这个应该是重写的父类BaseDao的方法getDao(),其目的是 供给在父类BaseDao中定义的方法以获得Dao对象
比如说,父类中有一个方法

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

此时你如果把这个重写的方法删去就会出现问题

查看完整回答
反对 回复 2019-03-01
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

不知道用的什么版本的spring
推荐构造器注入

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 657 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信