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

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

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

闭关修行中......

membalas semua(5)
PHPzhong

Sebagai contoh, jika kod yang anda tulis dipanggil UserService, dan terdapat perkhidmatan lain yang bergantung pada UserService dan juga bergantung pada UserDao, tidak perlu @Autowired UserDao dalam perkhidmatan ini.
Jika tidak mengapa untuk memadam, padamkan sahaja, tetapi ia sebenarnya tidak berguna.
Sebenarnya, suntikan pembina berprestasi lebih baik daripada suntikan harta

洪涛

Kod yang dijana secara automatik tidak berguna.

伊谢尔伦

Tanpa ini, refleksi boleh menetapkan nilai medan merentas hak akses (private), jadi kaedah set sebenarnya tidak diperlukan.

左手右手慢动作

Anda harus mengatasi kaedah getDao() kelas induk BaseDao Tujuannya adalah untuk menyediakan kaedah yang ditakrifkan dalam kelas induk BaseDao untuk mendapatkan objek Dao
Contohnya, terdapat kaedah dalam kelas induk <.>

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

Jika anda memadamkan kaedah yang ditulis semula ini pada masa ini, masalah akan berlaku

Peter_Zhu

Saya tidak tahu versi spring yang saya gunakan
Suntikan pembina disyorkan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan