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 |
댓글