springboot
项目使用Properties properties=new Properties()
的方式加载自定义配置文件,在编译后,自定义文件就不见了,因此需要使用另一种方式进行配置。
1、在resources目录下创建config文件夹,并创建custom.properties文件
custom.properties
文件内容如下:
custom.name=ShakeSpeare
custom.age=101
2、创建CustomProperties类
package com.propertiesdemo.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix="custom") // 用来指定properties配置文件中的key前缀
@PropertySource("classpath:config/custom.properties") //配置文件所在位置
public class CustomProperties {
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 "CustomProperties [name=" + name + ", age=" + age + "]";
}
}
3、在springboot启动类添加@EnableConfigurationProperties({CustomProperties.class})注解
package com.propertiesdemo;
import org.springframework.beans.factory.annotation.CustomAutowireConfigurer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import com.propertiesdemo.properties.CustomProperties;
@SpringBootApplication
@EnableConfigurationProperties({CustomProperties.class})
public class PropertiesdemoApplication {
public static void main(String[] args) {
SpringApplication.run(PropertiesdemoApplication.class, args);
}
}
4.、测试
编写TestController
类
package com.propertiesdemo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.propertiesdemo.properties.CustomProperties;
@RestController
public class TestController {
@Autowired
private CustomProperties customProperties;
@RequestMapping(value = "/test")
public String test() {
return customProperties.getName()+customProperties.getAge();
}
}
浏览器访问 http://localhost:8080/test
自定义配置成功