1.作用
通常与
@ConfigurationProperties
搭配使用,@ConfigurationProperties
要求当前类要有属性的setter
方法,而@ConstructorBinding
的作用便是让@ConfigurationProperties
通过当前类的构造函数将配置值绑定到当前类的属性上,这样就不需要属性的setter
方法了,但是要有构造函数
2.使用条件
既然是将配置文件转化为
java bean
,那么就需要属性的setter
方法,或者使用Lombok
的@setter
或者@data
注解;
如下:
@ConstructorBinding
@ConfigurationProperties(prefix = "acme")
@AllArgsConstructor
public class AcmeProperties {
private Map<String, MyPojo> map = new HashMap<>();
}
@Configuration
@EnableConfigurationProperties(AcmeProperties.class)
public class AcmePropertiesConfiguration {
}
@RestController
public class DemoController {
@Autowired
private AcmeProperties acmeProperties;
@GetMapping("/demo")
public String demo(){
return acmeProperties.toString();
}
@ConstructorBinding
不能与@Configuration
、@Component
等注解搭配使用,会报错
网友评论