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

1.映射到属性

package top.ytheng.demo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


@Controller
@RequestMapping("/file")
@PropertySource({"classpath:application.properties"})
public class FileController {
    @Value("${web.file.path}")
    private String filePath;
    
    @RequestMapping("/testpath")
    @ResponseBody
    private Object testPath() {
        return filePath;
    }
    
}

2.映射到类

(1)添加类

package top.ytheng.demo.entity;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
//使用该注解时,表示添加前缀,得把@Value注解去掉
//@ConfigurationProperties(prefix="serversettings")
@PropertySource({"classpath:application.properties"})
public class ServerSettings {
    @Value("${serversettings.name}")
    private String name;
    @Value("${serversettings.domain}")
    private String domain;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDomain() {
        return domain;
    }
    public void setDomain(String domain) {
        this.domain = domain;
    }
    
}

 

(2)添加控制器

package top.ytheng.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import top.ytheng.demo.entity.ServerSettings;

@RestController
public class UserController {    
    @Autowired
    private ServerSettings serverSettings;
    
    @GetMapping("/testproperties")
    public Object testProperties() {
        return serverSettings;
    }
}

3.添加application.properties配置文件

#自定义文件上传路径
web.file.path=C:\\Users\\chenchao\\eclipse-workspace\\springboot-demo\\src\\main\\resources\\static\\images\\

#端口号
server.port=8090

#测试实体类配置
serversettings.name=www.spring.io
serversettings.domain=springboot

4.添加启动类

package top.ytheng.demo;

import javax.servlet.MultipartConfigElement;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.MultipartConfigFactory;

@SpringBootApplication //等于下面3个
//@SpringBootConfiguration
//@EnableAutoConfiguration
//@ComponentScan
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    
    //文件大小配置
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //单个文件最大
        factory.setMaxFileSize("10240KB");
        //设置总上传数据总大小
        factory.setMaxRequestSize("102400KB");
        return factory.createMultipartConfig();
    }
}

5.测试路径

http://localhost:8090/file/testpath
http://localhost:8090/testproperties

 

posted @ 2018-10-08 21:40  玉天恒  阅读(487)  评论(0编辑  收藏  举报