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

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

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

闭关修行中......

全員に返信(5)
PHPzhong

たとえば、作成したコードが UserService という名前で、UserService に依存し、UserDao にも依存する別のサービスがある場合、このサービスで @Autowired UserDao を実行する必要はありません。
削除しても問題ない場合は削除してください。実際には役に立ちません。
ちなみに、コンストラクター注入はプロパティ注入よりもパフォーマンスが優れています

いいねを押す +0
洪涛

自動生成されたコードは役に立ちません。

いいねを押す +0
伊谢尔伦

これを使用しないでください。リフレクションはアクセス権を完全に越える可能性があります (private)给字段设置值,所以set実際、このメソッドは必要ありません。

いいねを押す +0
左手右手慢动作

これは、親クラス BaseDao のオーバーライドされたメソッド getDao() である必要があります。その目的は、Dao オブジェクトを取得するために親クラス BaseDao で定義されたメソッドを提供することです
たとえば、親クラスにはメソッドがあります

リーリー

現時点でこの書き換えたメソッドを削除すると問題が発生します

いいねを押す +0
Peter_Zhu

使用している Spring のバージョンがわからない
コンストラクター インジェクションをお勧めします

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート