读取配置文件

目的是避免硬编码。

使用场合一: controller 读取配置文件(@Value)

  • 准备配置文件

  以 application.properties 为例。

web.images-path=D:\\IdeaProjects\\images
  • 在controller类加注解  

    @PropertySource("classpath:application.properties")

  • 在属性上,加 @Value注解。

    @Value("${web.images-path}")
    private String filePath;
  • 然后在service里,使用 @Autowired注入。即可使用这些自定义的属性值。

使用场合二: 通过实体类读取配置文件

有配置文件如下

实体类和配置文件的key对应。

#测试配置文件注入
test.domain=www.xdclass.net
test.name=springboot

 

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Data
@Component
@PropertySource("classpath:application.properties")
public class ServerSettings {
    //名称
    @Value("${test.name}")
    private String name;

    // 域名
    @Value("${test.domain}")
    private String domain;
}

 

另外 考虑 前缀取值的做法。

@ConfigurationProperties(prefix="test")

 

如果读取配置文件失败:

默认Spring框架实现会从声明 @ComponentScan 所在的类的package进行扫描,来自动注入,因此启动类最好放在根路径下面,或者指定扫描包范围。

 

上一篇:springboot Could not resolve placeholder


下一篇:属性赋值-@PropertySource加载外部配置文件