JAVA/Spring(114)
-
[Spring] Validation 추상화
1. Validation 추상화 애플리케이션에서 사용하는 객체 검증용 인터페이스입니다 Validation 추상화의 특징 자바 EE 스펙중 하나입니다. 어떠한 계층과도 관계없이 모든 계층(웹, 서비스, 데이터)에서 사용해도 좋다 구현체 중 하나로, JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원합니다. (LocalValidatorFactoryBean) DataBinder에 들어가 바인딩 할 때 같이 사용되기도 한다 Validator 인터페이스 boolean supports(Class clazz) : 어떤 타입의 객체를 검증할때 사용할 것인지 결정함 void validate(Object obj, Errors e) : 실제 검증 로직을 이 안에서..
2022.10.28 -
[Springboot] 24. Externalized Configuration #2 @ConfigurationProperties
1. 타입-세이프 프로퍼티 @ConfigurationProperties 여러 프로퍼티를 묶어서 읽어올 수 있습니다. 타입-세이프하다는 의미는 @Value 애노테이션의 사용과 같이 @Value(”${yonghwan.name}”)의 value 문자열 값의 오타가 나지 않게 하는 방법입니다. 예를 들어 필드 멤버를 정의하고 getter 메서드로 접근하는 것은 타입-세이프한 방법입니다. 빈으로 등록해서 다른 빈에 주입할 수 있습니다. @EnableConfigurationProperties @Component @Bean 융통성 있는 바인딩 context-path (케밥) context_path (언더스코어) contextPath (카멜) CONTEXTPATH 프로퍼티 타입 컨버전(Conversion) @Durat..
2022.10.28 -
[Springboot] 24. Externalized Configuration
43a2795a063e8ce4b6ce79144fd44add 155352484 -3143923589894034969 8 4fc7f846-5653-42c7-a95c-d64b0425aeae 16191 1. 사용할 수 있는 외부 설정 properties YAML 환경 변수 커맨드 라인 매개변수 2. 프로퍼티 우선순위 유저 홈 디렉토리에 있는 spring-boot-dev-tools.properties 테스트 코드에 있는 @TestPropertySource 애노테이션 테스트 코드에 있는 @SpringBootTest 애노테이션의 properties 속성 커맨드 라인 매개변수들 SPRING_APPLICATION JOSN(환경 변수 도는 시스템 속성에 내장된 JSON 형식)의 프로퍼티들 ServiceConfig 파라미터..
2022.10.14 -
[Springboot] 23. SpringApplication #4 Application Exit & Admin Features
1. Application Exit 각각의 SpringApplication은 ApplicationContext가 정상적으로 종료하기 위해서 JVM에 shutdown hook을 등록합니다. 모든 표준 스프링 라이프싸이클 콜백(DisposableBean 인터페이스 또는 @PreDestory 애노테이션)은 사용할 수 있습니다. 게다가 만약 SpringApplication.exit() 메서드가 호출될때 특정한 종료 코드를 반환하고 싶은 경우에 빈(bean)들은 "org.springframework.boot.ExitCodeGenerator" 인터페이스를 구현할 수 있습니다. 이 종료 코드는 다음과 같이 상태코드로써 반환되어 System.exit() 메서드에 전달될 수 있습니다. @SpringBootApplicat..
2022.10.14 -
[Springboot] 23. SpringApplication #3 Web Environment
1. Web Environment SpringApplication은 사용자를 대신하여 ApplicationContext를 생성하려고 합니다. 이때 WebApplicationType에 따라서 ApplicationContext의 타입이 달라집니다. WebApplicationType의 종류 WebApplicationType.NONE : 웹 응용 프로그램으로 실행되지 않아야 하며, 내장된 웹 서버를 시작하지 않아야 합니다. WebApplicationType.REACTIVE : 반응형 웹 응용 프로그램으로 실행. 내장된 반응형 웹 서버를 시작해야 한다. WebApplicationType.SERVLET : 서블릿 기반 웹 응용 프로그램으로 실행. 내장된 서블릿 웹 서버를 시작해야 한다. Spring Web MVC가..
2022.10.13 -
[Springboot] 23. SpringApplication #2 Application Events and Listeners
1. SpringApplication Events and Listeners 일반적인 ContextRefreshedEvent 클래스와 같은 스프링 프레임워크 이벤트들뿐만 아니라 SpringApplication 클래스는 몇가지 추가적인 이벤트들을 전송합니다. 빈으로 등록할 수 없는 리스너 몇몇 이벤트들은 ApplicationContext가 생성되기 전에 발생됩니다. 그래서 이러한 이벤트들은 @Bean으로 등록할 수 없습니다. 대신 다음과 같은 방법으로 리스너를 등록합니다. SpringApplication.addListeners() 메서드를 이용한 방법 SpringApplicationBuilder.listeners() 메서드를 이용한 방법 META-INF/spring.factories 파일에 리스너 참조를 추..
2022.10.13