@Configuration和@Value的区别

博客探讨了使用@Value为对象属性单独赋值时的问题,在给非基本类型赋值时会报错。通过代码示例,包括yml配置文件和JavaBean,得出结论:@Configuration支持复杂类型的封装,而@Value不支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尝试使用@Value为对象的属性单独赋值,在给非基本类型赋值时报错

代码:

yml配置文件:

#person:
#  lastName: zhangsan
#  age: 18
#  boss: false
#  birth: 2017/12/12
#  maps: {k1: v1,k2: 12}
#  lists: [lisi,zhaoliu]
#  dog: {name: 小狗,age: 2}
lastName: zhangsan

dog: {name: 小狗,age: 2}

boss: false

maps: {k1: v1,k2: 12}

lists: [lisi,zhaoliu]

age: 18

birth: 2017/12/12

JavaBean:

Component
//@ConfigurationProperties(prefix="person")
public class Person {
    @Value("${lastName}")
    private String lastName;
    @Value("${age}")
    private Integer age;
    @Value("${boss}")
    private Boolean boss;
    @Value("${birth}")
    private Date birth;

    @Value("${maps}")
    private Map<String,Object> maps;
    @Value("${lists}")
    private List<Object> lists;
    @Value("${dog}")
    private Dog dog;

结论:

@Configuration支持复杂类型的封装,@Value不支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值