jjzjj

java - EasyMock 为预期方法返回 Null

我遇到EasyMock为预期的(定义的)方法调用返回null的问题。模拟对象的创建mock=EasyMock.createMock(DAO.class);单元测试中的模拟设置。expect(mock.update(myObj).andReturn(myObjUpdated).once();replayAll();service.setDao(mock);service.processData(myObj);verifyAll();processData方法简单的调用MyObjectobjUpdated=dao.update(myObj);这是从中构建模拟的接口(interface)。p

java - 使用多个数据源时 Spring 中的多个实体管理器问题

我的applicationContext.xml中有两个实体管理器,它们对应于两个不同的数据库。我可以使用entityManager1轻松查询database1,但是当我尝试使用entityManager2访问database2时,我没有得到任何结果。我正在使用Spring+Hibernate+JPA。这是我的ApplicationContext.xmlcharacterEncodingUTF-8characterEncodingUTF-8classpath*:META-INF/persistence.xmlclasspath*:META-INF/persistence2.xml这是我

java - 在 spring mvc Controller 中使用服务和 DAO

我正在构建一个Web应用程序,主要由来自后端/数据库的数据的CRUD操作组成。在某些情况下,我必须编写业务逻辑(我相信随着我们深入开发,我们将构建更多的业务逻辑)。目前,对于我正在创建的每个UI屏幕,我创建了一个模型类、服务类、DAO类、一个Controller(本质上是servlet)和一堆jsp页面。在大多数情况下,服务类只是调用DAO中的方法来传入模型对象。本质上,我们使用模型类来映射来自UI屏幕的数据。因此,Controller将在提交表单时填充模型对象。我已经开始使用服务类来保持从Web层到DAO层的分离层。但有时我觉得服务类只是添加了不必要的API调用级别,我认为我可以将D

java - 如何创建 org.springframework.dao.DataAccessException 实例?

我需要创建JUnit测试来处理DataAccessException,但是当我尝试时:thrownewDataAccessException();接收:CannotinstantiatethetypeDataAccessException为什么?我能做什么?谢谢。 最佳答案 DataAccessException是抽象类,无法实例化。而是使用具体类之一,例如newDataRetreivalFailureException("thiswasthereason")或创建您自己的类:thrownewDataAccessException(

java - Spring MVC : Generic DAO and Service classes

我正在使用SpringMVC编写Web。我使用GenericDAO编写了所有DAO。现在我想重写我的服务类。如何编写“通用服务”?有我的DAO:/*#################################DAO################################*/packagenet.example.com.dao;importjava.util.List;publicinterfaceGenericDao{publicTfindById(intid);publicListfindAll();publicvoidupdate(Tentity);publicvoi

java - 如何在不使用 "add"等的情况下在 DAO 中测试 "find"?

在下面的代码中,问题是我无法在不使用dao.list().size()的情况下测试dao.add(),反之亦然。这种做法是正常的还是不正确的?如果不正确,如何改进?publicclassItemDaoTest{//daototest@AutowiredprivateItemDaodao;@TestpublicvoidtestAdd(){//issue->testingADDbutusingLISTintoldSize=dao.list().size();dao.add(newItem("stuff"));assertTrue(oldSizetestingFINDbutusingADDI

另一个泛型的 Java 泛型

我有界面:interfaceIdentifable{TgetID();}和实现它的类:publicclassCatimplementsIdentifable{publicLonggetID(){...};}一切正常。迄今为止。现在我想创建GenericDAO,为什么我不能创建它?:publicabstractGenericDAO>{TgetByID(Sid);}我只能这样声明我的GenericDAO:publicabstractGenericDAO{TgetById(Sid);}并完成类(class):publicCatDAOextendsGenericDAO{CatgetById(L

java - 具有分离的 DAO 和服务层的 EJB 的 JPA

这更多是我目前遇到的架构问题。我需要有关在项目中集成EJB和JPA的最佳实践的帮助。我想要EJB来完成服务层的工作,其中包含我的应用程序的业务逻辑。就在那之下,我想要一个DAO层,我的EJB将有一个句柄,使用DAO工厂尽可能地分离这两个层。知道了这一点,我显然也不能将我的DAO作为EJB,因为我不希望它们自动注入(inject),因为我希望它们通过工厂创建。这导致我使用手动创建实体管理器Persistence.createEntityManagerFactory("PortalEJB").createEntityManager();现在...这个调用位于我的抽象JPADAO中:publ

java - 持久层的命名约定 : DAO vs Manager vs . ..?

免责声明:我几乎可以肯定我以前见过同样的问题,但现在找不到了。如果有人发现该问题,请提供链接。关于实现CRUD操作的类的最佳名称,我至少听到了两种意见:有人说DAO是一个经典的名字,每个人都知道它的意思,但也有人说Manager更符合CRUD功能。我应该在什么时候选择一个或另一个(或另一个)名称时是否有任何明确的规则? 最佳答案 我绝对不喜欢经理;“管理”某事可能意味着(并且曾经意味着)各种各样的事情。如果您担心人们不知道DAO是什么意思,您可以将其拼写为“DataAccess”,例如。但我发现DAO得到了广泛的理解。另一种方法是使

java - Spring DTO-DAO(资源-实体)映射到哪个应用层 : Controller or Service?

我正在编写一个公开RESTful服务的Spring(4.1.7)Web应用程序,并希望使用DTO“资源”对象在Controller和客户端浏览器之间进行通信,而不是公开我的持久性实体。目前应用有以下几层:查看(JSP/JSON)控制者DAO(@Service)DAO(@Repository)我的问题是,我应该在哪里将我的DAO实体映射到DTO资源?我查看了一些使用SpringHATEOAS的示例,它们显示Resource扩展ResourceSupport的对象被映射到Controller.这是最好的方法吗,还是我应该从DAO服务返回资源?我希望将Link元素添加到返回的资源(用于自身和