[SPRING] Spring에서 Bean을 재정의하는 것을 멈추는 방법
SPRINGSpring에서 Bean을 재정의하는 것을 멈추는 방법
두 개의 XML 파일에 동일한 id를 가진 bean을 정의하면 두 번째 파일에서 overiden 될 것입니다.
Say in file a.xml i have
<bean id="abc" />
Say in file b.xml i have
<bean id="abc" />
b.xml의 빈 "abc"가 선택됩니다. 얼마나 많은 xml이 빈 abc를 가지고 있더라도 고유성을 가져야합니다.
해결법
-
==============================
1.setoverflowBeanDefinitionOverriding을 호출하여 beanoverriding을 허용하지 않으려면이 기능을 비활성화하고 false를 전달할 수 있습니다. 이것은 아무것도로드되기 전에 일찍 완료되어야합니다. 이를 위해 사용자 정의 ContextLoader를 생성해야하거나 (Spring 3.1 이상인 경우) ApplicationContextInitializer를 작성하여 web.xml에 등록 할 수 있습니다.
setoverflowBeanDefinitionOverriding을 호출하여 beanoverriding을 허용하지 않으려면이 기능을 비활성화하고 false를 전달할 수 있습니다. 이것은 아무것도로드되기 전에 일찍 완료되어야합니다. 이를 위해 사용자 정의 ContextLoader를 생성해야하거나 (Spring 3.1 이상인 경우) ApplicationContextInitializer를 작성하여 web.xml에 등록 할 수 있습니다.
public class OverrideDisablingApplicationContextInitializer implements ApplicationContextInitializer { public void void initialize(<? extends ConfigurableApplicationContext> applicationContext); if (applicationContext instanceof AbstractRefreshableApplicationContext) { (AbstractRefreshableApplicationContext (applicationContext)).setAllowBeanDefinitionOverriding(false); } }
web.xml에 다음을 추가하십시오 (필요한 경우 ContextLoaderListener의 경우 DispatcherServlet에 init-param을 사용하십시오)
<context-param> <param-name>contextInitializerClasses</param-name> <param-value>your.package.here.OverrideDisablingApplicationContextInitializer<param-value> </context-param>
내 머리 꼭대기에서이 동작을 무시해야합니다. WebApplicationInitializer 스프링을 사용한다면 직접 ApplicationContext를 구성하는 것이 훨씬 쉽습니다. 그러면 메소드를 직접 호출 할 수 있으며 ApplicationContextInitializer는 필요하지 않습니다.
모래밭
-
==============================
2.또한:
또한:
final ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(); ctx.setAllowBeanDefinitionOverriding(false); ctx.setConfigLocations(shardContextImport); ctx.setParent(refreshedEvent.getApplicationContext()); ctx.refresh();
from https://stackoverflow.com/questions/19034273/how-to-stop-overiding-a-bean-in-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Tomcat이 war 파일에서 jsp를 찾을 수 없습니다. (0) | 2019.05.11 |
---|---|
[SPRING] Spring 3.2에서 경로 변수의 공백을 자르지 않는다. (0) | 2019.05.11 |
[SPRING] Spring JMS와 Oracle AQ (0) | 2019.05.11 |
[SPRING] executeSqlScript가 PL / SQL 용 Spring 블록과 함께 실패합니다. (0) | 2019.05.11 |
[SPRING] Spring Bean 사용자 정의 범위 JMS (0) | 2019.05.11 |