SpringBoot给类进行赋初值的四种方式
1. 使用@Value和@ConfigurationProperties
这里不加赘述了,前面我也发过,这里就放个链接吧
@Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
2. 使用@PropertySource
创建Person.java
package com.example.springbootdaily2.model;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
@PropertySource(value = "classpath:person.properties")
// 这个是前缀的意思
@ConfigurationProperties(prefix = "person2")
public class PersonX {
private String name;
private Character sex;
@DateTimeFormat(pattern = "YYYY-MM-SS")
private Date birthday;
private Integer age;
private String address;
private Map<String, Integer> maps;
private List<String> lists;
private Dog dog;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Character getSex() {
return sex;
}
public void setSex(Character sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Map<String, Integer> getMaps() {
return maps;
}
public void setMaps(Map<String, Integer> maps) {
this.maps = maps;
}
public List<String> getLists() {
return lists;
}
public void setLists(List<String> lists) {
this.lists = lists;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex=" + sex +
", birthday=" + birthday +
", age=" + age +
", address='" + address + '\'' +
", maps=" + maps +
", lists=" + lists +
", dog=" + dog +
'}';
}
}
创建person.properties
person2.name="李四"
person2.sex=男
person2.birthday=2022-02-07
person2.age=18
person2.maps.keys1=16
person2.maps.keys2=16
person2.lists=[12,24,57]
person2.address="保定廉耻"
person2.dog.name=${random.value}
写一个测试类
package com.example.springbootdaily;
import com.example.springbootdaily.model.Dog;
import com.example.springbootdaily.model.Person;
import com.example.springbootdaily.model.Person2;
import com.example.springbootdaily.model.PersonX;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringTest {
@Autowired
PersonX personX;
@Test
public void print4(){
System.out.println(personX);
}
}
输出结果:
Person{name='"岳轩子"', sex=M,
birthday=Sun Dec 26 00:00:00 CST 2021, age=18,
address='"保定武汉"', maps={keys2=16, keys1=16}, lists=[[12, 24, 57]],
dog=Dog{name='cdab390f55c9f8a6bbb420cd15607add'}}
注:如果显示乱码,设置文件编码为utf-8

3. 使用@ImportResource
Student类
package com.example.springbootdaily.model;
public class Student {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
创建beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="student" class="com.example.springbootdaily.model.Student">
<property name="name" value="李四"/>
<property name="age" value="18"/>
</bean>
</beans>
在主类中引入
package com.example.springbootdaily;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource(locations = "classpath:beans.xml")
public class SpringbootDailyApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDailyApplication.class, args);
}
}
测试
package com.example.springbootdaily;
import com.example.springbootdaily.model.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringTest {
@Autowired
Student student;
@Test
public void print5(){
System.out.println(student);
}
}
运行结果:
Student{name='李四', age=18}
其他
我们可以导入配置文件处理器,以后编写配置就有提示了
<!‐‐导入配置文件处理器,配置文件进行绑定就会有提示‐‐>
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐configuration‐processor</artifactId>
<optional>true</optional>
</dependency>
以上就是SpringBoot给类进行赋初值的四种方式的详细内容,更多关于SpringBoot给类进行赋初值的资料请关注脚本之家其它相关文章!
相关文章
基于eclipse-temurin镜像部署spring boot应用的实现示例
本文提供了基于eclipse-temurin镜像部署Spring Boot应用的详细实现示例,通过使用Docker镜像,可以轻松地创建和管理Spring Boot应用程序的容器化环境,感兴趣的可以了解一下2023-08-08
Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析
这篇文章主要介绍了Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析,需要的朋友可以参考下。2017-09-09
spring @EventListener 事件与监听的示例详解
本文介绍了自定义Spring事件和监听器的方法,包括如何发布事件、监听事件以及如何处理异步事件,通过示例代码和日志,展示了事件的顺序执行和异步处理机制,感兴趣的朋友一起看看吧2025-03-03
如何利用SpringBoot搭建WebService服务接口
之前项目经理想要开发一个webservice的协议,给我一个星期的时间,后面用springboot开发了webservice,这篇文章主要给大家介绍了关于如何利用SpringBoot搭建WebService服务接口的相关资料,需要的朋友可以参考下2023-11-11
SpringBoot中的@ApiModelProperty注解作用
这篇文章主要介绍了SpringBoot中的@ApiModelProperty注解作用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。2022-01-01
SpringBoot2.x 集成 Thymeleaf的详细教程
本文主要对SpringBoot2.x集成Thymeleaf及其常用语法进行简单总结,其中SpringBoot使用的2.4.5版本。对SpringBoot2.x 集成 Thymeleaf知识感兴趣的朋友跟随小编一起看看吧2021-07-07


最新评论