次の (ウィケット) コードを検討してください。
@SpringBean(required=false)
private StatusCheckService service;
私のユースケースでは、コンテキストに StatusCheckService タイプの Bean はありません。これは問題ではありません。オプションとしてマークされているため、(ウィケット) ページは正常に初期化されます。
でも:
@SpringBean(name = "statusCheckService", required=false)
private StatusCheckService service;
これは失敗します:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'statusCheckService' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095)
at org.springframework.beans.factory.support.AbstractBeanFactory.isSingleton(AbstractBeanFactory.java:400)
at org.springframework.context.support.AbstractApplicationContext.isSingleton(AbstractApplicationContext.java:1113)
at org.apache.wicket.spring.SpringBeanLocator.isSingletonBean(SpringBeanLocator.java:100)
at org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory.getFieldValue(AnnotProxyFieldValueFactory.java:140)
違いはないと思います。OK、そのような名前の Bean はありませんが、オプションとしてマークしたので、なぜ例外なのですか? これを回避する方法はありますか?