Java 弹簧:自动接线静态自参考不工作

Java 弹簧:自动接线静态自参考不工作,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在处理的项目是在spring中创建的一个框架,将打包为jar,以便在其他项目中使用 现在,我正在尝试自动关联一个静态自引用字段。我已经为AuthenticationClient创建了一个bean,但是spring仍然抱怨无法找到一个符合条件的bean来自动连接。我知道连接静电场不是一个好的选择。但我没有其他选择 public class AuthenticationClient { private static AuthenticationClient client; pr

我正在处理的项目是在spring中创建的一个框架,将打包为jar,以便在其他项目中使用

现在,我正在尝试自动关联一个静态自引用字段。我已经为AuthenticationClient创建了一个bean,但是spring仍然抱怨无法找到一个符合条件的bean来自动连接。我知道连接静电场不是一个好的选择。但我没有其他选择

public class AuthenticationClient {

    private static AuthenticationClient client;
    private @Autowired KerberosAPI kerberosAPI;
    private @Autowired KerberosSessionManager kerberosSessionManager;


    public AuthenticationClient getAuthenticationClient(){
        return client;
    }

    @Autowired
    public void setAuthenticationClient(AuthenticationClient client){
        AuthenticationClient.client = client;
    }
}
Servlet上下文:我在Servlet上下文中声明了我的bean,如下所示

    <beans:bean class="com.security.kerberos.KerberosAPIImpl" />
    <beans:bean class="com.security.kerberos.model.KerberosSessionManager"/>    
    <beans:bean class="com.security.rest.client.AuthenticationClient" />
更新:

正如我告诉你的,这个项目将被打包成jar。现在,我想在需要导入jar的项目的控制器中获取AuthenticationClient实例。父项目可能不是spring项目,因此,我需要有一种方法来获取AuthenticationClient实例,而无需自动连接它。我必须走这条路线的原因。如果需要更多信息,请告诉我

@Controller

public class Test {

@RequestMapping(value="/test")
public void test(){
    AuthenticationClient client = AuthenticationClient.getAuthenticationClient();
}

}

尝试使用
@Resource
注释

@Autowired
在寻找候选对象时跳过带注释的bean本身


请参见

以及从何处初始化
AuthenticationClient
的第一个实例?Spring知道这个例子吗?似乎它不知道这方面的任何实例。(顺便说一下,这样设置静态实例非常奇怪)我不明白你说的第一个实例是什么意思?我已经在servlet上下文中包含了我声明的bean,究竟哪种类型是静态字段?您自己的类
AuthenticationClient
?是的,它是一个自reference@Tom只要不是构造函数注入,就应该没有问题。至于字段,Spring尝试连接尽可能多的字段,但即使引用是圆形的,它仍会连接字段。尝试过但失败了!:(我得到了相同的异常NoniqueBeandFinitionFound。我猜问题与静态自引用有关。它起作用了。我必须在资源注释中包含bean的名称。谢谢
@Controller

public class Test {

@RequestMapping(value="/test")
public void test(){
    AuthenticationClient client = AuthenticationClient.getAuthenticationClient();
}