사용 ApplicationContext
대신 BeanFactory
:
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<context:annotation-config />
<context:component-scan base-package="com.xxx.streamingController"/>
<bean id="scMgr" class="com.xxx.streamingController.StreamingControllerManager">
</bean>
<bean id="streamingController" class="com.xxx.streamingController.StreamingController">
</bean>
</beans>
출력
@Controller
@Scope(value = BeanDefinition.SCOPE_SINGLETON)
public class StreamingController implements psConsolePortListener.Implementation{
@Autowired
@Qualifier("scMgr")
private StreamingControllerManager streamingMgr = null;
public static void main(String[] args) {
logger.info("StreamingController testing");
XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource(BEAN_FILE));
StreamingController obj = (StreamingController) factory.getBean("streamingController");
obj.streamingMgr.test();
}
}
@Service
@Scope(value = BeanDefinition.SCOPE_SINGLETON)
@Qualifier("scMgr")
public class StreamingControllerManager {
/** Logger */
private static final Logger logger = LoggerFactory.getLogger(StreamingControllerManager.class);
private StreamingControllerManager(){
logger.info("StreamingControllerManager is called!!");
}
public void test(){
logger.info("StreamingControllerManager test!!");
}
}
.
public static void main(String[] args) {
logger.info("StreamingController testing");
ApplicationContext ctx = new ClassPathXmlApplicationContext(BEAN_FILE);
StreamingController obj = (StreamingController) ctx.getBean("streamingController");
obj.streamingMgr.test();
}
또한 이미 <context:component-scan />
에 의해 impllied됩니다 <context:annotation-config />
를 제거하고 빈 선언을 제거합니다. 구성 요소 검색을 사용하므로 bean을 선언 할 필요가 없습니다.
기본적으로 나와 함께 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<context:component-scan base-package="com.xxx"/>
</beans>
감사합니다. 당신은 BeanFactory의 단점이라고 말하는 것을 의미합니까 ?? –
'BeanFactory'와'ApplicationContext'는 다른 것들이 없습니다. ('BeanFactory'는 단지 빈을 생성하고'Bean (Factory) PostProcessors'와는 아무런 관계가 없습니다. 반면'ApplicationContext'는 않습니다). 나는 스프링 레퍼런스 가이드의 3 장을 읽기를 강력하게 제안한다. –
효과가있었습니다. 큰!! 더 많은 정보를 가져 주셔서 감사합니다. –