JAVA/Spring(109)
-
[Spring][IoC] ApplicationEventPublisher
ApplicationEventPublisher란 무엇인가? ApplicationEventPublisher 인터페이스는 이벤트 프로그래밍에 필요한 이벤트를 제공하고 옵저버 패턴의 구현체입니다. ApplicationContext 클래스는 ApplicationEventPublisher를 상속받고 있습니다. ApplicationEventPublisher를 상속받은 ApplicationContext 클래스는 publishEvent(ApplicationEvent) 메서드를 호출하여 이벤트를 발생시킬 수 있습니다. 1. 이벤트 생성 ApplicationEvent 클래스를 상속받은 이벤트를 생성합니다. 여기서 source는 이벤트가 시작된 객체를 의미하고 data 변수는 이벤트 발생시 같이 보내고자 하는 데이터입니다...
2022.09.23 -
[Springboot] 내장 웹 서버(Embedded Web Servers) #1
개요 각각의 스프링 부트 웹 애플리케이션은 내장 웹 서버를 가지고 있습니다. 이 글에서는 내장 웹 서버를 변경하는 방법이나 포트번호를 변경하는 방법을 소개합니다. 1. 다른 웹 서버 사용하기 많은 스프링 부트 스타터들은 기본적인 내장 컨테이너들을 포함하고 있습니다. "spring-boot-starter-web" 라이브러리에는 "spring-boot-starter-tomcat" 의존성 라이브러리가 있고 톰캣을 포함하고 있습니다. 그러나 "spring-boot-starter-jetty" 또는 "spring-boot-starter-undertow" 라이브러리를 대신 사용하여 내장 웹 서버를 변경할 수 있습니다. "spring-boot-starter-webflux" 라이브러이에는 "spring-boot-star..
2022.09.23 -
[Spring][IoC] MessageSource
1. MessageSource란 무엇인가? MessageSource는 국제화(i18n) 기능을 제공하는 인터페이스입니다 메시지를 다국화하는 방법을 정의합니다. 메시지 파일을 모아놓고 각 국가마다 지역화함으로써 각 지역에 맞춘 메시지를 제공할 수 있습니다. 2. 메시지 설정 파일 준비하기 메시지 설정 파일을 준비하기 위해서는 messages.properties 파일들을 준비해야합니다. *.properties 파일에 [파일이름]_[언어]_[국가].properties 형식으로 메시지 파일을 추가합니다. messages.properties : 기본 메시지. 시스템의 언어 및 지역에 맞는 프로퍼티 파일이 존재하지 않는 경우에 선택됨 messages_en_US.properties : 영어 메시지 messages_k..
2022.09.13 -
[Spring][IoC] Environment, 프로파일 및 프로퍼티
1. 프로파일(Profile)이란 무엇인가? 프로파일은 빈(Bean)들의 그룹을 의미하는데 애플리케이션 실행시 프로파일을 설정하여 특정한 빈들의 그룹을 실행시킬 수도 있고 아니면 프로파일을 설정하지 않아서 런타임시 빈들을 활성화시키지 않을 수 있습니다. 예를 들어 테스트 환경에서는 A라는 빈을 사용하고, 배포환경에서는 A 빈을 사용하지 않고 싶다면 A 빈에 프로파일을 정의하여 배포시 비활성화 시킬 수 있습니다. 2. 프로파일 정의하기 프로파일을 정의하는 방법 클래스에 정의 @Configuration @Profile("test") @Component @Profile("test") 메서드에 정의 @Bean @Profile("test") @Repository @Profile("test") // 프로파일 정의 ..
2022.09.01 -
빈(Bean)의 스코프
1. 스코프의 종류 싱글톤 : 어떤 클래스의 인스턴스 개수가 단 한개만 생성하는 디자인 패턴 프로토타입 : 어떤 클래스의 인스턴스를 생성할때마다 새로 생성하는 패턴 웹 관련 스코프 Request : 웹 요청이 들어오고 나갈때까지 유지되는 스코프 Session : 웹 세션이 생성되고 종료될 때까지 유지되는 스코프 application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 2. 스프링에서 빈의 스코프는 기본적으로 싱글톤 예를 들어 Single이라는 클래스에 @Component 어노테이션을 적용하면 Single 클래스는 빈으로 등록됩니다. 이때 빈의 스코프를 따로 지정하지 않으면 싱글톤 타입으로 설정됩니다. @Component public class Single { } @SpringBootT..
2022.08.31 -
[Spring][IoC] @Autowired 어노테이션
1. @Autowired 어노테이션은 무엇인가? 필요한 의존 객체의 "타입"에 해당하는 빈을 IoC 컨테이너에서 탐색하여 주입하는 어노테이션 옵션 required : 기본값 true, false로 설정하게 되면 빈을 탐색하지 못할시 주입하지 않고 넘어갑니다. 2. @Autowired 어노테이션 사용 위치 생성자 세터(setter) 필드 // 주입 방법 1 @Autowired public BookService(BookRepository bookRepository){ this.bookRepository = bookRepository; } // 주입 방법 2 @Autowired public void setBookRepository(BookRepository bookRepository){ this.bookRep..
2022.08.29