Java Spring如何选择服务实现?

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

我在eclipse中有两个项目
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项目。我可以运行一个或另一个