[英]Autowiring multiple repositories into a single DAO in Spring - bad practice?
假設我有以下Spring Mongo存儲庫。 ObjectOne,ObjectTwo和ObjectThree表示存儲在同一數據庫中單獨集合中的文檔
public interface RepositoryOne extends MongoRepository<ObjectOne, String> {
}
public interface RepositoryTwo extends MongoRepository<ObjectTwo, String> {
}
public interface RepositoryThree extends MongoRepository<ObjectThree, String> {
}
然后是一個DAO類
public class ExampleDAO {
@Autowired
private RepositoryOne repositoryOne;
@Autowired
private RepositoryTwo repositoryTwo;
@Autowired
private RepositoryThree repositoryThree;
//Various methods performing operations with repositoryOne
//Various methods performing operations with repositoryTwo
//Various methods performing operations with repositoryThree
}
將多個存儲庫自動裝配到如上所述的單個DAO中是否被視為不好的做法? 感覺上課可能做得太多,理想情況下,我應該有一個單一的存儲庫來維護單一的職責。 如果不好的做法,是為每個存儲庫分配一個單獨的DAO,還是使用Spring魔術方法創建一個可用於調用更特定存儲庫的單個存儲庫?
對一個班級承擔多個不相關的責任是一個壞習慣。 如果它們相關,請考慮創建一個“服務”類並自動連接存儲庫。 服務類中的方法也可以抽象存儲庫中的方法,例如:
class ExampleService {
@Autowired
private RepositoryOne repositoryOne;
@Autowired
private RepositoryTwo repositoryTwo;
void saveEmployee(Employee e) {
repositoryOne.save(e);
repositoryTwo.update(e.getEmpId);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.