SpringBoot 注解配置文件自动映射到属性和实体类

配置文件加载

方式一
            1、Controller上面配置
               @PropertySource({"classpath:application.properties"})
            2、增加属性
                 @Value("${web.images-path}")
                  private String filePath;

application.properties文件

web.images-path=C:\\Users\\Administrator\\Desktop\\pics\\
spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}

Uploadcontroller 文件

@RestController
@PropertySource("classpath:application.properties")  //指定配置文件
public class UploadController {
//    增加属性
    @Value("${web.images-path}")
    private  String filePath ;

    @PostMapping("/upload")
    public JsonData upload(@RequestParam("himg") MultipartFile file, HttpServletRequest request) {

        System.out.println("显示注入的配置属性:"+filePath);
   .....
}

效果

SpringBoot 注解配置文件自动映射到属性和实体类SpringBoot 注解配置文件自动映射到属性和实体类

 SpringBoot 注解配置文件自动映射到属性和实体类

方式二:实体类配置文件
        步骤:
            1、添加 @Component 注解;
            2、使用 @PropertySource 注解指定配置文件位置;
            3、使用 @ConfigurationProperties 注解,设置相关属性;

            4、必须 通过注入IOC对象Resource 进来 , 才能在类中使用获取的配置文件值。
                @Autowired
                private ServerBean serverBean;

 ServerBean文件

SpringBoot 注解配置文件自动映射到属性和实体类

application.properties文件

#Server HTTP port.
server.port=8081

#测试配置文件注入
test.name=SpringProperties
test.domain=www.baidu.com
count=1000

GetController 文件

   //注入Bean
    @Autowired
    private ServerBean serverBean;
    /**
     *  功能描述:通过ServerBean来获取配置文件中的数据
     *
     * @return
     */
    @GetMapping("/v1/get_pro")
    public  Object getProperties(HttpServletRequest request){
        maps.clear(); //清空
        maps.put("uname",serverBean);
        return maps;
    }

效果

SpringBoot 注解配置文件自动映射到属性和实体类

 总之:

   (1) @ConfigurationPropertiesScan 配置直接扫描,必须要配置@Value

    //名称

     @Value("${test.name}")

     private String name;

 (2) @ConfigurationProperties(prefix = "test") 根据前缀扫描

private String name;

 (3)  @ConfigurationProperties(prefix = "test") 根据前缀扫描,如果不匹配,就需要配置@Value

    注入bean的方式,属性名称和配置文件里面的key一一对应,就用加@Value 这个注解 如果不一  样,就要加@value("${XXX}")

@Value("${count}")
private int count;

效果: 

 SpringBoot 注解配置文件自动映射到属性和实体类

 

上一篇:练习SQL6 查找学校是北大的学生信息


下一篇:WEB前端开发--1(Web前端开发综述)