[SPRING] OSGi 번들 내에서 Spring 빈을 어떻게 사용합니까?
SPRINGOSGi 번들 내에서 Spring 빈을 어떻게 사용합니까?
Spring을 사용하여 OSGi 번들 내부의 일부 비즈니스 조건을 기반으로 Bean을로드해야하는 애플리케이션이 있습니다. 이 bean은 내보내기를위한 것이 아니며 내 번들에서 계산에 사용됩니다. 기본적으로 나는 내재 된 실제 서비스 컴포넌트를 가지고 있으며 내부적으로이 Spring bean을 사용해야한다. 그러나...
이 일을 할 수있는 방법이 있습니까?
해결법
-
==============================
1.성취하고자하는 일에 대해 봄 DM은 필요하지 않습니다.
성취하고자하는 일에 대해 봄 DM은 필요하지 않습니다.
당신이 원하는 것은 실제로 번들 내부의 컨텍스트에 대한 액세스를 제공하고 ctx.getBean ()을 통해 클래스가 조회를 수행하는 것입니다. 이 경우, OSGi에 있지 않은 것처럼 수동으로 번들에 컨텍스트를 작성하고 호출하십시오. 봄 DM이 전혀 관여하지 않았습니다.
여기서 하나의 문제는 클래스 문맥 클래스 로더를 다르게 사용하기 때문에 번들 클래스 로더를 제공하기 위해 ClassPathXmlApplicationContext를 확장해야한다는 것입니다.
ApplicationContext ctx = new ClassPathXmlApplicationContext(myCtxPath) { protected void initBeanDefinitionReader(XmlBeanDefinitionReader reader) { super.initBeanDefinitionReader(reader); reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE); reader.setBeanClassLoader(getClassLoader()); } }
from https://stackoverflow.com/questions/8039931/how-do-i-use-a-spring-bean-inside-an-osgi-bundle by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] reg 표현식의 배열을 Spring 기반 mongo에 전달 @Query (0) | 2019.01.06 |
---|---|
[SPRING] 봄 mvc 3.1 사용자 지정 RequestCondition 추가 (0) | 2019.01.06 |
[SPRING] NoSuchMethodError : registerAutoProxyCreatorIfNecessary (ParserContext; Object;) Spring 구성의 예외입니다. (0) | 2019.01.06 |
[SPRING] jackson에 의해 직렬화 된 모든 객체에 클래스 이름 포함 (0) | 2019.01.06 |
[SPRING] SpringPersistenceUnitInfo :: AbstractMethodError (0) | 2019.01.06 |