JAVA/Spring(111)
-
[Spring] ResourceLoader 인터페이스
1. ResourceLoader 인터페이스 ResourceLoader 인터페이스는 Resource 인스턴스를 불러올 수 있는 객체에 의해 구현됩니다. 다음은 ResourceLoader 인터페이스의 정의입니다. public interface ResourceLoader { Resource getResource(String location); ClassLoader getClassLoader(); } 모든 ApplicationContext 인터페이스들은 ResourceLoader 인터페이스를 구현하기 때문에 모든 ApplicationContext는 Resource 인스턴스를 얻기 위해 사용할 수 있습니다. 특정 ApplicationContext에서 특정한 접두어를 가지지 않는 위치 경로를 가지고 getResou..
2022.09.30 -
[Spring] Resource 인터페이스와 Resource 인터페이스 구현체
소개 Resource 인터페이스 기존 제공하는 Resource 구현 1. 소개 자바의 표준 java.net.URL 클래스와 다양한 URL 접두어에 대한 표준 핸들러는 불행하게도 모든 로우 레벨 자원들에 대한 접근을 제공하지 않습니다. 예를 들어 클래스패스에서 가져오거나 ServletContext에서 상대적인 경로로 자원에 접근하는데 사용할 수 있는 표준화된 URL 구현이 없습니다. 특수한 url 접두사(http:와 같은 접두사에 대한 기존 핸들러와 유사함)를 위해 새로운 핸들러를 등록하는 것은 가능하지만, 이 방법은 일반적으로 복잡하며 URL 인터페이스는 여전히 접근해야하는 자원의 존재를 확인하는 방법과 같은 기능이 부족합니다. 2. Resource 인터페이스 "org.springframework.cor..
2022.09.25 -
[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