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

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

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

闭关修行中......

répondre à tous(5)
PHPzhong

Par exemple, si le code que vous écrivez s'appelle UserService et qu'il existe un autre service qui dépend de UserService et dépend également de UserDao, il n'est pas nécessaire de @Autowired UserDao dans ce service.
Si vous pouvez le supprimer, supprimez-le simplement, mais cela ne sert à rien.
À propos, l'injection de constructeur fonctionne mieux que l'injection de propriété

洪涛

Le code généré automatiquement est inutile.

伊谢尔伦

Sans cela, la réflexion peut définir la valeur du champ à travers les droits d'accès (private), donc la méthode set n'est en fait pas nécessaire.

左手右手慢动作

Vous devez remplacer la méthode getDao() de la classe parent BaseDao. Son but est de fournir la méthode définie dans la classe parent BaseDao pour obtenir l'objet Dao
Par exemple, il existe une méthode dans la classe parent

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

Si vous supprimez cette méthode réécrite à ce moment, des problèmes surviendront

Peter_Zhu

Je ne sais pas quelle version de Spring j'utilise
L'injection de constructeur est recommandée

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal