在你的服务层,假设你有一个XX方法,你会如何引用你的Dao类?
public class SomeServiceImpl implements SomeService
public void DoSomething(int someThingId){
UserDao userDao = this.daoFactory().GetUserDao();
SalesDao salesDao = this.daoFactory().GetSalesDao();
..
..
..
}
这样做有点太多了,并且希望是否有一种更容易更优雅的方式?
答案 0 :(得分:7)
我使用Springframework来配置我的应用程序。这个框架有一个很好的功能,使我能够将依赖项注入我的服务层。因此,服务实现看起来像这样:
@Autowired
private UserDAO userDao;
public void doSomething(int someThingId) {
userDAO.findById(someThingId);
...
}
答案 1 :(得分:0)
我不确定它是如何“正确”但我经常为DAO对象(属性)制作私有getter并使它们延迟加载。使它不那么冗长。然后,如果在多个地方使用特定的Dao,您就可以创建一个基本服务类......
public class SomeServiceImpl implements SomeService
{
private UserDao _UserDao
private UserDao getUserDao()
{
if (_UserDao == null)
{
_UserDao = DaoFactory.GetUserDao();
}
return _UserDao;
}
public void DoSomething(int somethingId)
{
this.getUserDao().findById(somethingId);
}
}
答案 2 :(得分:0)
使用注释或xml配置在运行时注入dao依赖项。