Java Spring如何选择服务实现?
我在eclipse中有两个项目Java Spring如何选择服务实现?,java,spring,autowired,Java,Spring,Autowired,我在eclipse中有两个项目siteBase和siteCustom siteBase具有控制器 public final class BaseController{ @Autowired BaseService service; @POST @Path(/test) public final boolean test() { try { service.test(); } catch (Th
siteBase
和siteCustom
siteBase具有控制器
public final class BaseController{
@Autowired
BaseService service;
@POST
@Path(/test)
public final boolean test() {
try {
service.test();
}
catch (Throwable ex) {
processException(ex);
}
return true;
}
}
BaseService接口
public interface BaseService extends BasicService{
boolean test();
}
以及BaseService实现
public class BaseServiceImpl implements BaseService {
public boolean test() {
System.out.println("BaseServiceImpl");
return true;
}
}
在siteCustom中,我有另一个实现
public class BaseServiceImpl implements BaseService {
public boolean test() {
System.out.println("BaseServiceImpl");
return true;
}
}
公共类BaseServiceCustomImpl实现BaseService{
public boolean test() {
System.out.println("BaseServiceCustomImpl");
return true;
}
}
正如我所预料的,当我运行siteBase并调用test controller时,会有一个控制台打印:
BaseServiceImpl
如果我运行siteCustom
并调用测试控制器,则会显示控制台打印:
BaseServiceCustomImpl
(我希望代码没问题,但这不是问题,它只是示例propouse,没有经过测试,只是为了解释情况)
前几天,突然,当我运行siteCustom时,控制台显示BaseServiceImpl…经过一些更新后,它再次工作正常控制台显示BaseServiceCustomImpl,但我想确切了解Spring是如何使用该实现的,以及何时何地决定哪个实现和他的方法使用。
我希望代码正常,但它没有问题这不是问题,只是propouse的例子,它没有经过测试,只是为了解释情况
请发布对您不起作用的代码并粘贴命令来重现它。问题不是关于代码,而是关于spring如何工作……这是因为它没有问题的代码只是一个项目中的所有类?不,不是同一工作区中的wo项目。我可以运行一个或另一个