복붙노트

[SPRING] 스프링의 자동 구성 재 초기화

SPRING

스프링의 자동 구성 재 초기화

Log4j에는 간격을두고 구성 및 감시를 수행하도록 시스템을 초기화 할 수있는 기능이 있습니다. 이를 통해 log4j 시스템은 등록 정보 파일이 변경 될 때마다 등록 정보를 다시로드 할 수 있습니다. 스프링 프레임 워크는 Configuration Observer 기능을 가지고 있으며 Configuration이 변경되면 Configuration이 다시로드됩니다. 다시로드해야하는 Configuration은 Spring의 applicationContext.xml이 아니라 Spring 초기화 빈을 사용하여 초기화되는 다양한 기타 구성 파일입니다.

해결법

  1. ==============================

    1.Log4J와 비슷한 기능을하는 유틸리티를 발견했습니다. 기본적으로 속성을 변경하면 PropertyPlaceholderConfigurer가 속성을 다시로드하는 확장입니다.

    Log4J와 비슷한 기능을하는 유틸리티를 발견했습니다. 기본적으로 속성을 변경하면 PropertyPlaceholderConfigurer가 속성을 다시로드하는 확장입니다.

  2. ==============================

    2.AFAIK Spring은 그러한 유틸리티를 제공하지 않습니다. 그러나 서드 파티 도구 인 JRebel을 사용하면 서버를 다시 시작하지 않고도 전체 웹 응용 프로그램 (Spring 구성 포함)을 업데이트 할 수 있습니다.

    AFAIK Spring은 그러한 유틸리티를 제공하지 않습니다. 그러나 서드 파티 도구 인 JRebel을 사용하면 서버를 다시 시작하지 않고도 전체 웹 응용 프로그램 (Spring 구성 포함)을 업데이트 할 수 있습니다.

    무료 평가판을 사용할 수 있으며 구매 가격이 상당히 저렴합니다.

  3. ==============================

    3.스프링 애플리케이션 컨텍스트를 다시로드하는 데는 신중해야합니다.

    스프링 애플리케이션 컨텍스트를 다시로드하는 데는 신중해야합니다.

    싱글 톤 빈은 어떻게 될 것으로 예상합니까? 객체가 singleton bean에 대한 참조를 가지고 있다면 그것을 갱신해야합니까?

  4. ==============================

    4.나는 JRebel을 사용하여 개발하고 당신의 구성을 새로 고치기를 기대하고있다. 자바에서는 잘 작동하지만 Spring에서는 그렇지 않다.

    나는 JRebel을 사용하여 개발하고 당신의 구성을 새로 고치기를 기대하고있다. 자바에서는 잘 작동하지만 Spring에서는 그렇지 않다.

  5. ==============================

    5.컨텍스트를 추가하려면 다음과 같이하십시오.

    컨텍스트를 추가하려면 다음과 같이하십시오.

    public class ApplicationContextUtil
    {
       static String[] configFiles = {"applicationContextParent.xml"};
    
       private static ApplicationContext context = null;
    
       static
       {
           context = new ClassPathXmlApplicationContext ( configFiles );
       }
    
       public static void addContext( String[] newConfigFiles )
       {
           // add the new context to the previous context
           ApplicationContext newContext =  new ClassPathXmlApplicationContext ( newConfigFiles, context );
           context = newContext;
       }   
       public static ApplicationContext getApplicationContext ()
       {
           // return the context
           return context;
       }
    }
    

    이것은 컨텍스트 프로 바이더 클래스입니다. 자세한 내용은 내 블로그에서 볼 수 있습니다.

  6. from https://stackoverflow.com/questions/461710/automatic-configuration-reinitialization-in-spring by cc-by-sa and MIT license