본문 바로가기

Spring/인프런 토비의 Spring Boot49

섹션 8-4 [외부 설정을 이용한 자동 구성] 프로퍼티 클래스의 분리 @Value값 디폴트 설정하기@MyAutoConfiguration @ConditionalMyOnClass("org.apache.catalina.startup.Tomcat") public class TomcatWebServerConfig { @Value("${contextPath:/}") String contextPath; @Bean("tomcatWebServerFactory") public ServletWebServerFactory servletWebServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.setContextPath(this.contextPath); return .. 2024. 7. 26.
섹션 8-3 [외부 설정을 이용한 자동 구성] @Value와 PropertySourcesPlaceholderConfigurer @Value와 PropertySourcesPlaceholderConfigurer@MyAutoConfiguration @ConditionalMyOnClass("org.apache.catalina.startup.Tomcat") public class TomcatWebServerConfig { @Value("${contextPath}") String contextPath; @Bean("tomcatWebServerFactory") public ServletWebServerFactory servletWebServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServe.. 2024. 7. 26.
섹션 8-2 [외부 설정을 이용한 자동 구성] 자동 구성에 Enviroment 프로퍼티 적용 Enviroment 우선순위@MySpringBootApplication public class TobyspringbootApplication { @Bean ApplicationRunner applicationRunner(Environment environment) { return args -> { String name = environment.getProperty("my.name"); System.out.println("my name: " + name); }; } public static void main(String[] args) { SpringApplication.run.. 2024. 7. 26.
섹션 8-1 [외부 설정을 이용한 자동 구성] Enviroment 추상화와 프로퍼티 Enviroment 추상화와 프로퍼티스프링 부트는 외부 설정 정보를 이용해서 생성된 빈 오브젝트의 프로퍼티값을 수정할 수 있습니다.대부분 자동 구성에 의해서 만들어지는 빈 오브젝트는 대부분 디폴트값이 들어가 있습니다. 예시로 스프링 부트의 톰켓 포트번호를 지정하지 않아도 8080포트로 서블릿이 설정되는 부분이 있습니다.서블릿을 구성할때 직접 톰캣 구성정보를 등록하여 커스텀 빈 등록을 하여 사용할 수도 있지만 기술적으로 여러 지식이 필요한 기술 빈들이 존재하여 한두가지 설정을 변경하기 위해 직접 커스텀빈으로 생성하는 작업을 직접 작상한다는 것은 오류가 발생할 여기도 있고 굉장히 번거로운 일입니다.따라서 Spring boot는 Spring boot가 제공하는 자동 구성 Configuration클래스에 다양한.. 2024. 7. 26.
섹션 7-6 [조건부 자동구성] 스프링 부트의 @Conditional 스프링 부트의 @Conditional더보기더보기💡Tip스프링의 프레임워크의 @Profile도 @Conditional 애노테이션이다.@Conditional(ProfileCondition.class)public @interface Profile {} 스프링 부트는 다음과 같은 종류의 @Conditional 애노테이션과 Condition을 제공한다 스프링 부트의 자동 구성은 @Conditional을 이용한다.Class Conditions@ConditionalOnClass@ConditionalOnMissingClass지정한 클래스의 프로젝트내 존재를 확인해서 포함 여부를 결정한다.주로 @Configuration 클래스 레벨에서 사용하지만 @Bean 메소드에서도 적용 가능하다. 단 클래스 레벨의 검증 없이 @B.. 2024. 6. 27.
섹션 7-5 [조건부 자동구성] 자동 구성 정보 대체하기 자동 구성 정보 대체하기Spring Boot애플리케이션 구성 정보를 작성하는 방식은 크게 두 가지 나뉘어진다는 부분을 우리는 이전 공부한 내용을 토대로 이해할 수 있습니다.애플리케이션 로직을 담당하는 빈들을 사용자 구성 정보 방식으로 등록을 하고 주로 컴포넌트 스캔에 의해서 등록을 시킵니다.  일정한 패키지에 빈 클래스들을 등록합니다. 그리고 주로 기술과 관련된 빈들은 스프링 부트의 자동 구성 동작 방식에 의해서 말 그대로 자동으로 등록되게 구성합니다.이러한 이점을 통해 우리는 기존 스프링 프레임워크의 자율성으로 인해 환경을 구성하는데까지 너무나 많은 기술들을 결정하여 설정 했어야 하는 것에 비해 스프링 부트는 여러 개발자들에 의해 결정되고 노하우를 통해 정한 기술들을 미리 정의 하여 빠르게 스프링 프레.. 2024. 6. 27.