在SpringBoot下读取⾃定义properties配置⽂件的⽅法SpringBoot⼯程默认读取application.properties配置⽂件。如果需要⾃定义properties⽂件,如何读取呢?
⼀、在resource中新建.properties⽂件
在resource⽬录下新建⼀个config⽂件夹,然后新建⼀个.properties⽂件放在该⽂件夹下。如图remote.properties所⽰
⼆、编写配置⽂件
remote.uploadFilesUrl=/resource/files/
remote.uploadPicUrl=/resource/pic/
三、新建⼀个配置类RemoteProperties.java
@Configuration
@ConfigurationProperties(prefix = "remote", ignoreUnknownFields = false)
@PropertySource("classpath:config/remote.properties")
@Data
@Component
public class RemoteProperties {
private String uploadFilesUrl;
private String uploadPicUrl;
}
其中
@Configuration 表明这是⼀个配置类
@ConfigurationProperties(prefix = "remote", ignoreUnknownFields = false) 该注解⽤于绑定属性。prefix⽤来选择属性的前缀,也就是在remote.properties⽂件中的“remote”,ignoreUnknownFields是⽤来告诉SpringBoot在有属性不能匹配到声明的域时抛出异常。
@PropertySource("classpath:config/remote.properties") 配置⽂件路径
@Data 这个是⼀个lombok注解,⽤于⽣成getter&setter⽅法,详情请查阅lombok相关资料
@Component 标识为Bean
四、如何使⽤?
在想要使⽤配置⽂件的⽅法所在类上表上注解EnableConfigurationProperties(RemoteProperties.class)
并⾃动注⼊
@Autowired
RemoteProperties remoteProperties;
在⽅法中使⽤ UploadFilesUrl()就可以拿到配置内容了。
@EnableConfigurationProperties(RemoteProperties.class)
@RestController
public class TestService{
@Autowired
RemoteProperties remoteProperties;
public void test(){
String str = UploadFilesUrl();
System.out.println(str);
}
}
这⾥str就是配置⽂件中的”/resource/files/”了。
PS:下⾯看下 Spring-boot中读取config配置⽂件的两种⽅式
了解过spring-Boot这个技术的,应该知道Spring-Boot的核⼼配置⽂件application.properties,当然也可以通过注解⾃定义配置⽂件的信息。
Spring-Boot读取配置⽂件的⽅式:
⼀.读取核⼼配置⽂件信息application.properties的内容
核⼼配置⽂件是指在resources根⽬录下的application.properties或l配置⽂件,读取这两个配置⽂件的⽅法有两种,都⽐较简单。
核⼼配置⽂件application.properties内容如下:
test.msg=Hello World SpringBoot
⽅式⼀:使⽤@Value⽅式(常⽤)
ller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
可以免费听高中课程的网站import org.springframework.web.bind.annotation.RestController;
@RestController
public class WebController {
@Value("${test.msg}")
private String msg;
@RequestMapping("/index1")
public String index1(){
return "⽅式⼀:"+msg;
winform datagridview保存
}
}
⽅式⼆:使⽤Environment⽅式
ller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import nv.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class WebController {
@Autowired
private Environment env;
@RequestMapping("/index2")
public String index2(){
return "⽅式⼆:"+Property("test.msg");
}
}
⼆.读取⾃定义配置⽂件信息,例如:author.properties
为了不破坏核⼼⽂件的原⽣态,但⼜需要有⾃定义的配置信息存在,⼀般情况下会选择⾃定义配置⽂件来放这些⾃定义信息,这⾥在resources⽬录下创建配置⽂件author.propertiesmarginwidth是什么
resources/author.properties内容如下:
author.name=Solin
author.age=22
创建管理配置的实体类:
properties文件用什么打开ller;
import org.t.properties.ConfigurationProperties;
import t.annotation.Configuration;
import org.springframework.stereotype.Component;
//加上注释@Component,可以直接在其他地⽅使⽤@Autowired来创建其实例对象
@Component
@ConfigurationProperties(prefix = "author",locations = "classpath:author.properties")
public class MyWebConfig{
private String name;
embroider
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
注意:
在@ConfigurationProperties注释中有两个属性:
locations:指定配置⽂件的所在位置
prefix:指定配置⽂件中键名称的前缀(我这⾥配置⽂件中所有键名都是以author.开头)
使⽤@Component是让该类能够在其他地⽅被依赖使⽤,即使⽤@Autowired注释来创建实例。
创建测试Controller
ller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class ConfigController {
@Autowired
private MyWebConfig conf;
@RequestMapping("/test")
public @ResponseBody String test() {
return "Name:"+Name()+"---"+"Age:"+Age();
}
源码编辑器登录入口}
注意:由于在Conf类上加了注释@Component,所以可以直接在这⾥使⽤@Autowired来创建其实例对象。
总结
以上所述是⼩编给⼤家介绍的在SpringBoot下读取⾃定义properties配置⽂件的⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。