SpringBoot101 读取配置的几种方式

最近搞 jwt,需要从配置文件中读取 secret

Springboot 提供了很强大的配置文件系统。(其实就是依赖注入)

使用方法

字段注入

1
2
@Value("${jwt.secret}")
private static String secret;

直接这样子写就行了,spring 会自动注入进来。

主要要给类加上@Component,不然 spring 不会管你的。

构造器注入

如果我的这个对象是 final 的呢。

因为 final 变量必须在声明时或在构造函数中初始化,所以我们必须要手动初始化。

可以曲线救国,可以在构造器里面给 secret 赋值,然后再让 spring 注入构造器就行了。

1
2
3
4
5
6
    private final String SECRET;

    @Autowired
    public JwtUtlis(@Value("${jwt.secret}") String secret) {
        this.SECRET = secret;
    }

读取 Environment

如果我的这个对象是 static 的呢。 我们可以从 Environment 对象中获取配置文件的所有信息。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
    private static String SECRET;

    private static Environment env;

    _@Autowired_
    public JwtUtlis(Environment env) {
        JwtUtlis.env = env;
    }

    @PostConstruct
    private void init() {
        SECRET = env.getProperty("jwt.secret");
    }

总结

通过各种注入方法,我们通常可以找到一种较为方便的方法来读取我们的配置文件。这里,理解 spring 的依赖注入是理解配置文件管理的核心。

Licensed under CC BY-NC-SA 4.0