给属性赋值的几种方式
下面从一个例子来解释
创建一个Dog类,包含name、age属性,添加它的无参构造、有参构造方法,以及getter和setter方法,还有toString方法。
在这个类上面加上@Component,把这个类添加进spring的组件里。
创建一个Person类,包含name、age、birth(Date类型,util那个包)、happy(是否快乐,boolean类型)、Dog、Map、List属性
添加它的无参构造、有参构造方法,以及getter和setter方法,还有toString方法。在这个类上面加上**@Component**
给Dog类的属性赋值,通过@value(" ")的方式
接下来在测试类里测试一下
可以看到dog是注入成功了的
显然这样赋值是很麻烦的,name如何从外部给它赋值呢?
通过yaml给Person赋值
yaml配置文件赋值比properties更简便
在Resourses目录下新建(application名字固定)
注意yaml配置文件的语法结构是:
(yaml对空格要求极严格)
key:空格value
- 1
那么如何把配置文件与Person类绑定呢?
@ConfigurationProperties(prefix=“person”)
通过这个prefix参数把实体类Person与配置文件绑定起来
再在测试类里面测试,输出了刚刚给person的值。说明赋值成功了!
在添加@ConfigurationProperties(prefix=“person”)时上面抛红,提示自动注解的一个类没找到
点开后发现什么都没有
只需要在地址栏改低版本
就出来了
提示我们添加依赖
<dependency>
<groupId></groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- 1
- 2
- 3
- 4
- 5
自己添加进去,重启IDEA就好了
加载指定的配置文件,不用核心配置文件application
@PropertySource(value = “classpath:”)
再在声明属性的上方添加@Value("${name}")就可以把properties文件里面的属性值与实体类的属性绑定起来。达到赋值的目的。