方式一: @Value
基本类型属性注入,直接在字段上添加@Value("${xxx.xxx}")即可。
配置文件
URL=http://localhost:8080/test/index
NAME=name
测试代码
@RequestMapping("/test")
public class NsfwController {
@Value("${URL}")
private String url;
@Value("${NAME}")
private String name;
@GetMapping(value = "/index")
public void<String, Object> test() {
System.out.println(url);
System.out.println(name);
}
}
方式二:@ConfigurationProperties注解读取
当项目中需要大量配置字段时,将properties属性和一个Bean关联在一起
配置文件
Test.URL=http://localhost:8080/test/index
Test.NAME=name
测试代码
@Data
@Component
@ConfigurationProperties(prefix = "Test")
@PropertySource(value = "config.properties")
public class TestBean{
private String name;
private String url;
}
-
@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;
-
@Component 表示将该类标识为Bean
-
@ConfigurationProperties(prefix = “Test”)用于绑定属性,其中prefix表示所绑定的属性的前缀。
-
@PropertySource(value = “config.properties”)表示配置文件路径。
使用时,@Autowired自动装填即可
测试代码
@RequestMapping("/test")
public class NsfwController {
@Autowired
private Test test;
@GetMapping(value = "/index")
public void test() {
System.out.println(test.getName());
System.out.println(test.getUrl());
}
}
方式三:使用工具类
使用场景:无法自动注入或者不需要Bean注入的普通Java项目
配置文件
URL=http://localhost:8080/test/index
NAME=name
工具类
import java.util.ResourceBundle;
public class Util {
/**
* 服务地址
*/
public static String URL;
/**
* Name
*/
public static String NAME;
static {
//配置文件名
ResourceBundle rb = ResourceBundle.getBundle("application");
URL = rb.getString("URL");
NAME = rb.getString("NAME");
}
}
测试代码
//直接获取到工具类的值
private static String url = Util.URL;
private static String name = Util.NAME;
public class NsfwController {
public void test() {
System.out.println(url);
System.out.println(name);
}
}