我们的应用程序有一个服务层和一个DAO层,编写为Springbean。在测试服务层时——我不想依赖真实的数据库,所以我通过为DAO层创建一个“模拟”实现来模拟它所以当我测试服务层时——我将服务层bean链接到MockDAObean在生产中——将服务层链接到“真正的”DAObean这是个好主意吗?关于如何模拟数据库层的任何替代建议?澄清:这个问题是关于测试服务层而不是DAO层。在测试服务层时——我假设DAO层已经过测试或不需要测试。最主要的是——我们如何测试服务层——而不依赖于DAO实现——因此我在模拟DAO层 最佳答案 这是我们多年
我正在为其JavaEEWeb应用程序设计我公司的部分架构。我非常清楚使用外观和一个或多个DAO的原因。我遇到的问题是:将有一些逻辑绝对属于集成层,因为这一切都是为了保持数据模型的一致性。除了逻辑超出了简单地维护引用完整性和其他将由JPA和Hibernate处理的“原始”持久性任务之外。我不将其归类为业务逻辑,因为它独立于任何业务功能。但是,我的理解是,DAO应该只实现访问对象并将对象持久保存到数据源所需的逻辑。我的结论是,我需要一个适合集成层的类似于“业务对象”的模式。我环顾四周,我发现的最接近的东西(但仍然不太符合我的想法)是SunTransferObjectAssemblerpat
我是第一次构建spring应用程序。我遇到了很多并发问题,我怀疑我管理后端的方式有问题。我看到的后端代码和我见过的示例之间的唯一区别是管理器类。在我的代码中,我有我的模型(由hibernate管理)和我的DAO在模型上进行CRUD/搜索/等。在我看过的示例代码中,他们从不直接使用DAO。相反,他们使用间接调用DAO的管理器类。对我来说,这似乎是毫无意义的代码重复。这些管理类有什么用?我读到过他们将我的代码包装在“交易”中,但我为什么要这样做? 最佳答案 事务用于使更新具有“事务性”。示例)用户单击一个网页,导致数据库中更新了13条记
我们有一个使用spring/Hibernate/MySQL构建的应用程序,现在我们想测试DAO层,但这里有一些我们面临的缺点。考虑多个对象相互连接的用例,例如:书有页。没有Book就不能存在Page对象,因为book_id是Page中的强制FK。为了测试页面,我必须创建一本书。这个简单的用例很容易管理,但是如果你开始构建一个库,直到你没有创建围绕Book和Page的整个宇宙,你才能测试它!所以要测试Page;创建图书馆创建部分创建流派创建作者创建书籍创建页面现在测试页面。有没有一种简单的方法可以绕过这个“universecreation”并单独测试页面对象。我还希望能够测试与Page相
直接来自this关于J2EEDAO模式的oracle文章:确实一切都非常清楚,但业务对象“参与者”(他们这样调用它)除外。在这里,我引用了一些我希望获得更多见解的内容(特别是对现实生活中的例子(一个简单的例子)很有用)。BusinessObjectTheBusinessObjectrepresentsthedataclient.Itistheobjectthatrequiresaccesstothedatasourcetoobtainandstoredata.ABusinessObjectmaybeimplementedasasessionbean,entitybean,orsomeo
springframework.dao.EmptyResultDataAccessException在尝试从sqlserver数据库中选择数据时,这是我编写的代码。谁能建议如何使用查询界面从数据库中选择数据?publicintgetRedempRequestId(RedemptionResponseBeanredemptionResponse)throwsParseException{finalTimestampredempIdFromCsv=getRedeemDate(redemptionResponse);intparticipantId=redemptionResponse.ge
我目前正在使用MyBatis-Spring集成框架,这是我从文档中读到的内容:Ratherthancodedataaccessobjects(DAOs)manuallyusingSqlSessionDaoSupportorSqlSessionTemplate,Mybatis-Springprovidesaproxyfactory:MapperFactoryBean.Thisclassletsyouinjectdatamapperinterfacesdirectlyintoyourservicebeans.Whenusingmappersyousimplycallthemasyouhav
根据thisarticle,通用JPADAO(数据访问对象)是一个非常好的模式。有什么好的实现方式吗? 最佳答案 您可以查看SpringDataJPA.SpringDataJPA中引入了一些新概念,例如基于方法名称的查询创建,因此您可以声明一个方法,如findById(Stringid)和“通用”实现将解释方法的名称并执行类似selectEntityfromEntitywhereid='givenstring'findByNameAndLastName(Stringname,StringlastName)甚至findByNameOr
我们在现有项目中有许多DAO(目前没有接口(interface),但可以改变)。我们没有为每个DAO类连接一个Spring管理的bean并将它们注入(inject)服务层,而是有一个类似这样的DAO“工厂”:publicclassDAOFactory{privatestaticDAOFactorydaoFac;static{daoFac=newDAOFactory();}privateDAOFactory(){}publicstaticDAOFactorygetInstance(){returndaoFac;}publicMyDAO1getMyDAO1(){returnnewMyDAO
我遇到了无法解决的问题。从我的@Controller,我可以很容易地访问我的Autowiring的@Service类并毫无问题地使用它。但是当我从一个没有注释的单独类执行此操作时,它会给我一个NullPointerException。我的Controller(工作)-@ControllerpublicclassUserController{@AutowiredUserServiceuserService;...我单独的Java类(不工作)-publicfinalclassUsersManagementUtil{@AutowiredUserServiceuserService;或@Aut