java
未读
springboot中使用工厂模式
本文基于工厂模式与Spring框架,设计了一套灵活的接口多实现动态调用机制。核心通过TestFactory类实现,利用Spring依赖注入特性,自动将所有实现TestInterface的组件(如TestImpl1、TestImpl2、TestImpl3)以@Component指定的名称为key、实例为value存入ConcurrentHashMap,实现统一管理。Controller层通过TestFactory根据请求参数key动态获取对应实现类,调用其getMsg方法完成业务逻辑处理。该设计解耦了接口与具体实现,新增实现类只需添加@Component注解即可自动集成,无需修改工厂代码,符合开闭原则。同时,ConcurrentHashMap的选用保证了线程安全,适用于高并发场景。整体架构实现了接口的动态路由与扩展,为工厂模式在Spring环境下的应用提供了典型实践。
java
未读
记录springboot中cucumber使用mock
本文记录了在Cucumber测试框架中结合Mockito对Mapper层进行mock的实践方法,旨在解决测试依赖问题,提升用例独立性。核心思路是保持Cucumber用例、步骤定义及Test Runner编写不变,引入mockito-core-1.10.19库,在Step类中完成mock逻辑。具体实现上,通过@Mock注解或Mockito.mock()创建Mapper的mock对象,使用Mockito.when()预设方法返回值(如支持参数匹配的Mockito.any()),关键步骤是通过ReflectionTestUtils将mock后的Mapper手动注入到Service层依赖字段中(需确保字段名一致)。该方法简化了测试环境搭建,无需依赖真实数据库,仅需在Step类中编写mock代码即可实现隔离测试。实践表明,该方案能满足Cucumber场景下对Mapper的mock需求,同时为类似依赖mock场景提供了可复用的参考思路。后续可探索更高效的注入方式,进一步优化测试流程。