728x90
반응형
@ConditionalOnMissingBean
덮어쓰기 방지하기
@ConditionalOnMissingBean
사용
@Bean
과 같이 사용 시 같은 타입의 Bean이 있다면 해당 Bean은 AutoConfiguration
시 등록하지 않는다.
예시
// Configuration Project // HolomanConfiguration.java @Configuration public class HolomanConfiguration { @Bean @ConditionalOnMissingBean public Holoman holoman() { Holoman holoman = new Holoman(); holoman.setHowLong(5); holoman.setName("Jinseo"); return holoman; } } // Application Project // Application.java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public Holoman holoman() { Holoman holoman = new Holoman(); holoman.setHowLong(100); holoman.setName("dev_jsk"); return holoman; } }
결과

@ConfigurationProperties
빈 재정의 수고 덜기
@ConfigurationProperties
사용
properties
, yml
파일을 이용해 같은 Key값을 가진 정보를 Bean으로 등록한다.
예시
1. Configuration Project
application.properties
내 holoman.name
, holoman.how-long
추가
// application.properties holoman.name=name holoman.how-long=0
HolomanProperties.java
생성 및 @ConfigurationProperties("holoman")
추가
// pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
// HolomanProperties.java @ConfigurationProperties("holoman") public class HolomanProperties { private String name; private int howLong; getter/setter }
HolomanConfiguration.java
수정 및 @EnableConfigurationProperties(HolomanProperties.class)
추가
// HolomanConfiguration.java @Configuration @EnableConfigurationProperties(HolomanProperties.class) public class HolomanConfiguration { @Bean @ConditionalOnMissingBean public Holoman holoman(HolomanProperties properties) { Holoman holoman = new Holoman(); holoman.setHowLong(properties.getHowLong()); holoman.setName(properties.getName()); return holoman; } }
2. Application Project
application.properties
내 holoman.name
, holoman.how-long
추가
// application.properties holoman.name=Kim Jinseo holoman.how-long=28
결과

728x90
반응형
'Dev > Spring Boot' 카테고리의 다른 글
[스프링 부트 개념과 활용] 내장 웹 서버 응용 1부 (0) | 2020.08.19 |
---|---|
[스프링 부트 개념과 활용] 내장 웹 서버 이해 (0) | 2020.08.19 |
[스프링 부트 개념과 활용] 자동 설정 만들기 1부 (0) | 2020.08.18 |
[스프링 부트 개념과 활용] 자동 설정 이해 (0) | 2020.08.18 |
[스프링 부트 개념과 활용] 의존성 관리 응용 (0) | 2020.08.18 |
댓글