我使用 Spring 将@Profile
与测试相关的类与开发和产品分开。我在寻找一种在 pom.xml 中设置spring.profiles.active
to的方法时遇到了麻烦,仅出于目标。换句话说,如果 Maven 目标是我想运行这个:test
test
test
mvn test
仍然可以访问带有 @Profile("test") 注释的类,
而不是这样:
mvn test -Dspring.profiles.active=test
因为它指定了运行两次的“测试”性质。
有可能吗?
更新:添加代码
以下两项服务用于测试和开发/生产。两者都实现相同的接口 MyService
MyService测试环境:
@Service
@Profile("test")
@ActiveProfiles("test")
public class TestMyServiceImpl implements MyService {
@Override
public String myMethod(){
...
}
}
MyService 开发环境:
@Service
public class DevMyServiceImpl implements MyService {
@Override
public String myMethod(){
...
}
}
自动装配 MyService 的控制器:
@RestController
@RequestMapping
public class MyController {
@Autowired
private MyService myService;
@RequestMapping(value = /myendpoint, method = RequestMethod.POST)
public @ResponseBody Response foo(@RequestBody String request) {
Response response = new Response();
response.setResult(myService.myMethod());
return response;
}
}
人到中年有点甜
相关分类