SpringBoot对properties的使用

在我们的日常开发中总是免不了一些配置文件,SpringBoot是让我们更好地利用spring框架,简化spring框架复杂的配置,让我们更加专注于业务!spring中的配置方式在SpringBoot同样支持!
spring有属性注入,在SpringBoot同样支持!

属性注入

plication.properties文件中添加如下自定义配置:

dept.id=D00001
dept.name=物联网人工智能产品部
dept.address=广州

定义一个Dept.java,按照spring的方式可以通过@Value将值注入进对象属性中:

@Component
public class Dept {
	
	@Value("${dept.id}")
	private String id;
	@Value("${dept.name}")
	private String name;
	@Value("${dept.address}")
	private String address;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Dept [id=" + id + ", name=" + name + ", address=" + address + "]";
	}
	
	
}

测试类 DeptController.java :

@RestController
public class DeptController {
	
	@Autowired
	private Dept dept;
	
	@GetMapping(value="/getDept")
	public String getDept() {
		
		return dept.toString();
	}

}

访问:http://localhost:8093/getDept
在这里插入图片描述
可以看到我们成功的访问到了数据,这是我们将数据存放到了application.properties中,在开发中application.properties文件中应该只是存放系统配置信息,我们自定义的配置信息原则上是不能跟系统配置信息放在一起的,在SpringBoot中同样支持自定义配置文件,如下:

在resources下新建dept.properties,并添加如下信息:

dept.id=D00001
dept.name=物联网人工智能产品部
dept.address=广州

定义 Dept.java

@Component
@PropertySource("classpath:dept.properties")
public class Dept {
	
	@Value("${dept.id}")
	private String id;
	@Value("${dept.name}")
	private String name;
	@Value("${dept.address}")
	private String address;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Dept [id=" + id + ", name=" + name + ", address=" + address + "]";
	}
	
	
}

这样在系统系统启动之后就会加载dept.properties文件,但这不是SpringBoot特有的配置,之所以说不是SpringBoot特有的配置是因为添加 @PropertySource 之后导的包是spring中的context下的,如下:

import org.springframework.context.annotation.PropertySource;

类型安全的属性注入

那么在SpringBoot中是 如何使用的呢,这里不得不说下类型安全的属性注入,当配置属性非常多的时候,用@Value就会显得臃肿了,而且还容易出错,在视觉上也不美观!

在resources下新建dept.properties (文件名随便起,但是以 .properties结尾)
在这里插入图片描述
在dept.properties文件中自定义配置:

dept.id=D00001
dept.name=物联网人工智能产品部
dept.address=广州

定义Dept.java 实体类用于接受dept.properties注入进来的值,其中@Component
@PropertySource(“classpath:dept.properties”) 是指向自定义配置文件路径;@ConfigurationProperties(prefix = “dept”) 是指向配置文件中属性的前缀。

@Component
@PropertySource("classpath:dept.properties")
@ConfigurationProperties(prefix = "dept")
public class Dept {
	
	private String id;
	private String name;
	private String address;
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Dept [id=" + id + ", name=" + name + ", address=" + address + "]";
	}
	
	
}

注:

@ConfigurationProperties是 springBoot的注解
@PropertySource 是 spring中context的注解
导入的包如下:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;

访问:http://localhost:8093/getDept 结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值