Springboot读取配置文件、pom文件及自定义配置文件
前言很多人都知道读取配置文件,这是初级做法,上升一点难度是使用java bean的方式读取自定义配置文件,但是大家很少有知道读取pom文件信息,接下来我都会讲到。正文笔者还是基于Spring Boot :: (v1.5.8.RELEASE),利用的工程有eureka服务和eureka-client客户端服务。首先教大家一个最简单的读取application.prope...
前言
很多人都知道读取配置文件,这是初级做法,上升一点难度是使用java bean的方式读取自定义配置文件,但是大家很少有知道读取pom文件信息,接下来我都会讲到。
正文
笔者还是基于Spring Boot :: (v1.5.8.RELEASE),利用的工程有eureka服务和eureka-client客户端服务。
首先教大家一个最简单的读取application.properties文件内容,
下图是我eureka-client服务全部的配置
eureka.client.service-url.defaultZone=http://admin:admin@localhost:1111/eureka/
server.port=8762
spring.application.name=eureka-client
spring.zipkin.base-url=http://localhost:9411
management.security.enabled=true
#启用shutdown
endpoints.shutdown.enabled=true
#禁用密码验证
endpoints.shutdown.sensitive=true
#验证用户名
security.user.name=admin
#验证密码
security.user.password=admin
#角色
management.security.role=SUPERUSER
#指定shutdown endpoint的路径
endpoints.shutdown.path=/custompath
#也可以统一指定所有endpoints的路径`management.context-path=/manage`
#指定管理端口和IP
management.port=8081
management.address=127.0.0.1
配置controller,使用 @Value
@Value("${management.address}")
private String address;
@GetMapping("/ClientService/name")
public String test(@NotBlank(message = "name 不能为空") @RequestParam("name") String name) {
if (name.equals("1")) {
throw new ParameterServiceException("这里填写错误代码,规范应是一个枚举", "描述当前错误原因");
}
return address;
}
访问http://localhost:8762/ClientService/name?name=2
可以看到配置文件management.address的值已经读取出来了。
接下来演示读取pom文件的信息,笔者只实验了读取部分pom的信息
<?xml version="1.0" encoding="UTF-8"?>
<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.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Edgware.RELEASE</version>
</parent>
<groupId>eureka-client</groupId>
<artifactId>eureka-client</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
这是我pom文件中一部分代码,现在我要读取这个项目的版本号,我需要在application.properties文件加一行代码
version=@project.version@
@Value("${version}")
private String val;
@GetMapping("/ClientService/name")
public String test(@NotBlank(message = "name 不能为空") @RequestParam("name") String name) {
if (name.equals("1")) {
throw new ParameterServiceException("这里填写错误代码,规范应是一个枚举", "描述当前错误原因");
}
return val;
}
访问http://localhost:8762/ClientService/name?name=2
接下来讲解使用java bean的方式读取自定义配置文件
创建一个javaBean::DefineEntity
package com;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
/**
* @author yanlin
* @version v1.3
* @date 2018-10-22 下午12:38
* @since v8.0
**/
@Component
@ConfigurationProperties(prefix = "defineTest")
@PropertySource("classpath:define.properties")
public class DefineEntity {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "DefineEntity{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
创建一个自定义的配置文件名字叫define.properties,内容如下
defineTest.name=kelly
defineTest.password=helloKelly
配置你的controller
@Autowired
DefineEntity defineEntity;
@GetMapping("/ClientService/name")
public String test(@NotBlank(message = "name 不能为空") @RequestParam("name") String name) {
if (name.equals("1")) {
throw new ParameterServiceException("这里填写错误代码,规范应是一个枚举", "描述当前错误原因");
}
return defineEntity.toString();
}
启动,访问http://localhost:8762/ClientService/name?name=2,结果如下,大功告成啦,是不是so easy!!!
注:对本文有异议或不明白的地方微信探讨,wx:15524579896
更多推荐
所有评论(0)