私の春のコンテキストでは、サービス Bean とこのサービス Bean のプロキシを (明示的に) 作成しています。どちらも同じインターフェースを実装しています。
自動配線がターゲット Bean を注入できないようにすることはできますか?
@Resource または @Qualifier アノテーションでターゲット サービスを使用できるようにしたいのですが、オートワイヤリングの場合は常にプロキシにする必要があります。
何か案は?
プライマリアノテーションを使用します。自動配線時にどのBeanを使用するのが望ましいかを示します。
お役に立てれば :)
次のように @Primary アノテーションをプロキシ サービスに配置できます。
@Primary
@Repository
public class ProxyOfSomeService implements SomeService
その後、SomeService
フィールドに@Autowired アノテーションを使用すると、デフォルトProxyOfSomeService
で注入されます。
ただし、実際のサービスが必要な場合は、次のようにします。
@Autowired
@Resource(name="someRealService")
private SomeService someService;
これはあなたのニーズを満たすと思います、ありがとう!