ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SpringApplication - 2
    Spring 2020. 7. 6. 17:30

     

    1) ApplicationEvent 등록
    - ApplicationContext를 만들기 전에 사용하는 리스너는 @Bean으로 등록할 수 없다.
    - SpringApplication.addListners()

     

    2) WebApplicationType 설정

     

    3) 애플리케이션 아규먼트 사용하기

    - ApplicationArguments를 빈으로 등록해 주니까 가져다 쓰면 된다.

     

    4) 애플리케이션 실행한 뒤 뭔가 실행하고 싶을때

    -  ApplicationRunner (추천) 또는 CommandLineRunner

    -  순서 지정 가능 @Order

     


    (1)

    ApplicationContext가 만들어지기 전에 시작되는 이벤트는 빈으로 등록되어있더라도 실행되지 않는다.

     

    해결법은 context에 직접 listener를 추가해준다.

    context에 직접 추가 되었으므로 @Component는 필요가 없다.

     


    그러면 ApplicationContext가 생성된 후에 발생하는 이벤트는 그냥 @Component로 빈으로만 등록하면 되는가 ?

     

    ApplicationContext가 생성되고 발생하는 이벤트는 

    ApplicationContext에 직접 추가하지않고 이벤트객체를 빈으로 등록시키면 이벤트가 작동한다.

    중요한 점은 이벤트가 발생하는 시점이다.

     


    (2)

    기본적으로는 SERVLET 작동,

    SpringWebFlux가 있을경우 REACTIVE 작동,

    둘 다 없을경우 NONE 작동,

    둘 다 있을경우 SERVLET 작동한다.

     


    (3)

    VM Option에 -Dfoo

    Program Arguments에 --bar 추가

     

     

    실행시 VM Option으로 추가한 foo는 없고,

    Programe argument에 추가한 bar는 있다.

     

    콘솔에서 실행시에는 어떨까 ?

    결과는 같다.

     

    JVM Option은 못받고 -- arguments만 받는다.

     

     ?) 어떨때 어떻게 사용하는지 잘 모르겠음.

     


    (4)

    ApplicationRunner를 구현하여 실행.

    실행 결과는 같다.

     

    러너가 여러개일경우에 @Order(숫자) 를 통해 순서를 지정한다.

    낮은순서가 우선순위를 가진다.

     

    ※참조

    www.inflearn.com/course/스프링부트/dashboard

    'Spring' 카테고리의 다른 글

    로깅 - 1부, 2부  (0) 2020.07.08
    Profile  (0) 2020.07.08
    외부설정 - 2부  (0) 2020.07.07
    외부 설정 - 1부  (0) 2020.07.07
    SpringApplication - 1  (0) 2020.07.04
킹수빈닷컴