我想划分开发逻辑结构,所以我划分了控制器,仓库,仓库实现,vo,服务。
控制器、VO、存储库都可以。
但对于知识库来说,由于服务中存在事务代码,实现和服务很难划分逻辑。
我在sts4中使用的是hybernate jpa。
吹制代码用于服务。
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
以下代码用于Repository界面。
public interface LoginRepository {
List<UserInfo> findUser(String id, String pw);
}
下面的代码用于RepositoryImpl。
public class LoginRepositoryImpl implements LoginRepository{
UserInfo userInfo = new UserInfo();
@Override
public List<UserInfo> findUser(String id, String pw) {
userInfo.setId(id);
userInfo.setPw(pw);
// it didn't finish the code yet.
return null;
}
}
所以我认为emf和em对象可以进入RepositoryImpl类,这样它们就可以使用该对象来使用数据CRUD。但问题是tx对象似乎必须保留在事务的服务类中。
或者emf、em、tx都应该保留在服务类中?
1条答案
按热度按时间xghobddn1#
正如您所说的,服务类和它的实现类一般很难分开,所以服务类和它的实现类的包结构一般如下
,但是在日常开发中,几乎所有的业务都是在impl中实现的,为了更好的扩展和维护,你不能把其他的类放到impl包里,即使这样对你的开发有好处,如果你做了sub-do,你的项目可能就没有办法被别人维护了,这是我的理解,我身边的开发者也是这样做的。