application.properties
dean.name = dean
dean.age = ${random.int(0,100)}
dean.fullname = ${dean.name} Oh
DeanProperties.class
@Getter
@Setter
@Component
@ConfigurationProperties("dean") //프로퍼티명과 동일
public class DeanProperties {
private String name;
private int age;
private String fullname;
}
ApplicationRunner.class
@Component
public class ApplicationRunner implements org.springframework.boot.ApplicationRunner {
@Autowired // 빈 주입
DeanProperties deanProperties;
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("age-property :" + deanProperties.getAge());
System.out.println("name-property :" + deanProperties.getName());
System.out.println("fullname-property :" + deanProperties.getFullname());
}
}
@SpringBootApplication
//@EnableConfigurationProperties(DeanProperties.class) 이미 @SpringBootApplication안에 포함 되어있음
public class DeanohApplication {
...
..
흔한경우는 아님..
Application.class
@SpringBootApplication
public class DeanohApplication {
@ConfigurationProperties("server")
@Bean
public ServerProperties serverProperties(){
return new ServerProperties();
}
public static void main(String[] args) {
SpringApplication app = new SpringApplication(DeanohApplication.class);
app.run(args);
}
}