복붙노트

[SPRING] 독립 실행 형 응용 프로그램에서 Spring 사용

SPRING

독립 실행 형 응용 프로그램에서 Spring 사용

나는 Spring을 배우고 있으며 독립형 응용 프로그램에서 어떻게 사용하는지 (그리고 웹 응용 프로그램을 만들 때 사용하는 방법)에 관한 질문이 있습니다. 지금까지 코딩 된 예제는 getBean을 호출하여 빈을 검색하는 간단한 메인 메소드를 사용했다. 컨텍스트 객체. 그러나 여러 클래스에서이 작업을 수행하려는 경우 먼저 컨텍스트를 가져온 다음 getBean을 호출하거나 다른 대체 방법이 있습니까? 또는 독립 실행 형 응용 프로그램 및 웹 응용 프로그램에서이 작업을 수행하는 방법입니까?

해결법

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

    1.context.getBean ()을 사방에 호출하면, 의존성 삽입 프레임 워크 인 Spring의 모든 부분을 빠뜨릴 수 있습니다.

    context.getBean ()을 사방에 호출하면, 의존성 삽입 프레임 워크 인 Spring의 모든 부분을 빠뜨릴 수 있습니다.

    독립 실행 형 응용 프로그램에서는 일반적으로 context.getBean ()을 한 번만 (또는 적어도 매우 드물게) 호출하여 "루트"bean을 가져옵니다. 이 빈은 Spring에 의해 다른 빈들과 함께 주입된다.

    웹 응용 프로그램에서는 모두 사용하는 프레임 워크에 따라 다릅니다. 그러나 일반적으로 컨텍스트를로드하는 web.xml에 리스너를 등록하고 컨트롤러는 Spring에 의해 생성 및 / 또는 주입됩니다.

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

    2.너는 바른 길을 가고있어. 주 방법은 발견 한대로 애플리케이션 컨텍스트를 초기화합니다. 그 트릭은 애플리케이션 컨텍스트를 사용하여 애플리케이션의 진입 점을 만드는 것입니다. 그 콩은 봄에 만들어져 당신에게 유선이 될 것입니다.

    너는 바른 길을 가고있어. 주 방법은 발견 한대로 애플리케이션 컨텍스트를 초기화합니다. 그 트릭은 애플리케이션 컨텍스트를 사용하여 애플리케이션의 진입 점을 만드는 것입니다. 그 콩은 봄에 만들어져 당신에게 유선이 될 것입니다.

    import org.springframework.beans.factory.BeanFactoryUtils;
    import org.springframework.context.support.AbstractApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    
    public class ApplicationMain {
    
        public static void main(String[] args) {
    
            AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:/META-INF/spring/applicationContext.xml");
    
            MyApplication app = BeanFactoryUtils.beanOfType(ctx, MyApplication.class);
    
            app.init();
        }
    
    }
    
  3. ==============================

    3.하나의 클래스 (메인 클래스, 아마)는 컨텍스트를 생성하기 위해 Spring을 인식해야합니다. 다른 모든 클래스는 Spring을 통해 계속 연결될 수 있으며 컨텍스트를 인식 할 필요가 없습니다.

    하나의 클래스 (메인 클래스, 아마)는 컨텍스트를 생성하기 위해 Spring을 인식해야합니다. 다른 모든 클래스는 Spring을 통해 계속 연결될 수 있으며 컨텍스트를 인식 할 필요가 없습니다.

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

    4.종류는 작성하는 응용 프로그램에 따라 다르지만 getBean () 호출을 최소로 제한해야합니다. 첫 번째 빈을 컨텍스트에서 직접 가져오고 나머지 논리를 빈 자체에 넣습니다. 줄을 따라 뭔가 :

    종류는 작성하는 응용 프로그램에 따라 다르지만 getBean () 호출을 최소로 제한해야합니다. 첫 번째 빈을 컨텍스트에서 직접 가져오고 나머지 논리를 빈 자체에 넣습니다. 줄을 따라 뭔가 :

    Bootstrap boot = context.getBean(Bootstrap.class);
    boot.start();
    

    그리고 나머지 모든 응용 프로그램 논리는 start () 내에서 발생합니다. 스레드를 생성하고 이벤트를 수신 할 수 있습니다.

  5. from https://stackoverflow.com/questions/9675130/using-spring-in-standalone-apps by cc-by-sa and MIT license