私が取り組んでいるプロジェクトは、春に作成されたフレームワークであり、他のプロジェクトで使用するために jar としてパッケージ化される予定です。
現在、静的な自己参照フィールドを自動配線しようとしています。AuthenticationClient の Bean を作成しましたが、自動配線する資格のある 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;
}
}
サーブレット コンテキスト: このようにサーブレット コンテキスト内で自分の Bean を宣言しました
<beans:bean class="com.security.kerberos.KerberosAPIImpl" />
<beans:bean class="com.security.kerberos.model.KerberosSessionManager"/>
<beans:bean class="com.security.rest.client.AuthenticationClient" />
詳細な例外はこちら:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.security.rest.client.AuthenticationClient] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
アップデート:
私があなたに言ったように、プロジェクトはjarとしてパッケージ化される予定です。ここで、jar をインポートする必要があるプロジェクトのコントローラーで AuthenticationClient のインスタンスを取得したいと考えています。親プロジェクトは春のプロジェクトではない可能性があるため、自動配線せずに AuthenticationClient のインスタンスを取得する方法が必要です。この道を行かなければならない理由。さらに情報が必要な場合はお知らせください。
@Controller
public class Test {
@RequestMapping(value="/test")
public void test(){
AuthenticationClient client = AuthenticationClient.getAuthenticationClient();
}
}