springboot读取配置文件的配置项值

三种方式读取:
(一)
通过springboot带有的Environment 类读取

(二)
通过使用@Value读取

(三)
通过添加一个配置类,使用@ConfigurationProperties读取
使用步骤:
① 添加一个配置类,在类名上面使用@ConfigurationProperties;若读取的配置文件不是默认的application.properties,则需再添加@PropertySource(“xxx.properties”)注解
② 在引导类上面添加;@EnableConfigurationProperties(value=类名.class)
③ 使用;在需要的地方使用@Autowired注入该对象即可

代码:

引导类:

@SpringBootApplication
//方式三需要添加该注解
@EnableConfigurationProperties(MyProperties.class)
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}

测试类:

@RestController
public class DemoController {
	
	@Autowired
	private Environment environment;
	
	@Value("${spring}")
	private Integer password;
	@Value("${spring.activemq.user}")
	private String userName;
	
	@Autowired
	private MyProperties myProperties;
	
	@RequestMapping("/test")
	public String demo() {
		
		// 方式一
		System.out.println("方式一---------"+environment.getProperty("spring.env.pass"));
		System.out.println("方式一--------"+environment.getProperty("spring.env.user"));
		
		//方式二
		System.out.println("方式二---------"+password);
		System.out.println("方式二---------"+userName);
		
		//方式三
		System.out.println("方式三---------"+myProperties.getSex());
		System.out.println("方式三---------"+myProperties.getUrl());
		
		return "successful";
	}
}

方式三的配置类:

/**
 * @ConfigurationProperties 获取application.properties文件中配置项值
 * prefix表示配置文件中的配置项前缀
 * ignoreUnknownFields表示是否忽略在文件中但是本类又没有属性对应的情况
 * 
 * @PropertySource 获取配置文件名    如果是默认配置文件application.properties或application.yml,则可以省略该注解
 */
@Component
@ConfigurationProperties(prefix="spring.my",ignoreUnknownFields=true)
@PropertySource("app.properties")
public class MyProperties {
	private String url;
	private String sex;
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
}

配置文件:
默认的application.properties

spring.env.pass=88888
spring.env.user=jack
spring=12356
spring.activemq.user=zeng11

自定义的配置文件app.properties:

spring.my.url=www.baidu.com
spring.my.sex=male

pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.17.RELEASE</version>
	</parent>
  
  <groupId>com.abc.springboot</groupId>
  <artifactId>spring-boot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo</name>
  <dependencies>
  	<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
	<!-- 支持热部署(快速重启) -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
		<!-- 不向下传递依赖 -->
		<optional>true</optional>
	</dependency>
  </dependencies>
  
</project>

附代码目录结构:
在这里插入图片描述

注意:引导类Application,一定要放在代码的最外层,否则会报错:
在这里插入图片描述

控制台最后结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013068184/article/details/83348374
今日推荐