본문 바로가기

Spring

부록

SOLID

S: 단일 책임의 원칙 => 하나의 클래스는 하나의 기능만

O: 개방 폐쇄 원칙 => 확장에는 열려있고 변경에는 닫혀있는 

L: 리스코프 치환의 원칙 => 자식 클래스로 객체를 생성해도 괜찮아야 한다

I: 인터페이스 분리의 원칙 => 하나의 인터페이스보다 여러개의 인터페이스가 낫다

D: 의존성 역전 원칙 => 의존관계는 변화하기 어려운곳에 의존해야한다. 예를 들어 인터페이스나 추상클래스

 

 

Application Listener에대해 살펴보자

애플리케이션이 이벤트가 발생하면 리스너가 실행이된다. 빈으로 등록을 해놓으면, 등록된 빈중에서 해당하는 이벤트에대한 리스너를 알아서 실행해준다.

주의해야할 것이있다. 이벤트가 언제 발생하냐가 중요한 기점이다.

애플리케이션 컨텍스트가 만들어졌냐안만들어졌냐를 기준으로, 애플리케이션 컨텍스트가 만들어진 다음에 발생한 이벤트들은 그 이벤트 리스너가 빈이면 알아서 빈을 실행할 수가 있다.

문제는 애플리케이션 컨텍스트가 만들어지기 전의 발생한 이벤트이다.

위의 작성한 ApplicationStartingEvent 는 애플리케이션 컨텍스트가 만들어지기전이라서 이 리스너를 빈으로 등록해도 리스너가 동작이 안된다.

따라서 이런 경우에는 직접 등록을 해줘야한다.

 

Application Argument에대해 살펴보자

—로 들어오는것. -D로 들어오는것은 JVM Argument다.

 

Application이 실행되고 나서 무엇인가 실행하고 싶을 때는 어떻게 할까?

ApplicationRunner(추천) 또는CommandLineRunner

만약 Runner가 여러개면 @Order를 주어 순서를 정할 수 있다.

 

외부 설정은 어떻게 할까?

  • application.properties
  • ConfigurationProperties

@Profile이란 무엇일까?

특정한 profile에서만 특정한 bean을 등록하거나, bean 설정을 다르게 하거나 할때 쓴다.

'Spring' 카테고리의 다른 글

Spring Web MVC  (0) 2020.01.14
Test  (0) 2020.01.14
Spring Boot  (0) 2020.01.14
AOP 와 PSA  (0) 2020.01.14
Bean 과 DI  (0) 2020.01.14