我在SPRING中使用Factory模式,就像在这个例子中一样 http://kh-yiu.blogspot.co.il/2013/04/spring-implementing-factory-pattern.html
如果没有具有特定名称的bean 我得到异常org.springframework.beans.factory.NoSuchBeanDefinitionException
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'XXX' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:549)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.config.ServiceLocatorFactoryBean$ServiceLocatorInvocationHandler.invokeServiceLocatorMethod(ServiceLocatorFactoryBean.java:367)
at org.springframework.beans.factory.config.ServiceLocatorFactoryBean$ServiceLocatorInvocationHandler.invoke(ServiceLocatorFactoryBean.java:356)
at com.sun.proxy.$Proxy24.createManualDepositProcess(Unknown Source)
如果我尝试获取未定义的bean,例如printStrategyFactory.getStrategy(“NO_DEF”),我会遇到异常.print(doc);
是否有可能存在没有bean - 返回null? 谢谢!
答案 0 :(得分:0)
如果您在发布的示例中进行自动装配,@Autowired(required=false)
应该可以解决问题。
编辑:抱歉一开始我的问题出错了,我刚刚在您发布的链接测试中发现了@Autowired
注释,并想到了标准解决方案。