《深入理解Spring Cloud与微服务构建》学习笔记(二)~使用Spring Boot配置文件

接上一章demo:
一、IDEA在创建完Spring Boot项目时,会在src/main/resources目录下生成一个application.properties文件,用户进行系统属性配置,默认为空。Spring Boot也支持yml格式的文件配置,当前使用yml文件配置进行操作。

resources下新建一个文件:application.yml ,手写测试数据:

database:
    type: mysql
    username: root
    password: root


要读取配置文件的属性值,只需在变量上加@Value("${属性名}")注解,就可以将配置文件 application.yml 的属性值赋给变量。

我们可以在默认Controller进行,也可以新建一个controller进行操作,此处新建一个Controller类ApplicationController.java,并将每一个变量进行绑定,如下:


import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ApplicationController {

    @Value("${database.type}")
    private String type ;
    @Value("${database.username}")
    private String username ;
    @Value("${database.password}")
    private  String password ;

    @GetMapping("/my")
    public String my(){
        StringBuffer sb = new StringBuffer();
        sb.append("****************");
        sb.append("<br/>");
        sb.append("type="+this.type);
        sb.append("<br/>");
        sb.append("username="+this.username);
        sb.append("<br/>");
        sb.append("password="+this.password);
        sb.append("<br/>");
        sb.append("*****end********");
        return sb.toString() ;
    }
}


重新启动项目,浏览器访问http://localhost:8080/my ,效果如下:

这说明配置文件application.yml里的属性: database.type、database.username、database.password 已经成功读入应用程序,大功告成!

二、假如配置属性很多,那么代码里是不是要写很多变量来一个一个绑定,这样就显得很麻烦,在这里我们可以将配置文件里的属性赋值给实体类。

需要先创建一个ConfigBean.java 类,此类必须加一个注解@ConfigurationProperties ,表明该类为配置属性类,并加上配置的prefix。还需要添加@Component注解, Spring Boot 启动时通过包扫描将该类作为一个Bean 注入 IoC 容器中。

      创建一个Controller ,读取 ConfigBean 类的属性。在 Controller 类上,加 @EnableConfigurationProperties 注解,并指明 ConfigBean 类。

import com.sinal.teat.spring_boot_demo1011.bean.ConfigBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableConfigurationProperties(ConfigBean.class)
public class ConfigController {

    @Autowired
    ConfigBean configBean ;

    @GetMapping("config")
    public String init(){
        StringBuffer sb = new StringBuffer();
        sb.append("***************");                         sb.append("<br>");
        sb.append("type="+configBean.getType());              sb.append("<br>");
        sb.append("username="+configBean.getUsername());                sb.append("<br>");
        sb.append("password="+configBean.getPassword());          sb.append("<br>");
        sb.append("**********end************");
        return sb.toString();
    }
}


重新启动项目,浏览器输入:http://localhost:8080/config  效果如下:

demo代码:https://download.csdn.net/download/ssdate/10723239

猜你喜欢

转载自blog.csdn.net/ssdate/article/details/83011954
今日推荐