spring boot 之 spring boot配置

SpringBoot学习之day02

springboot配置

  • springboot的全局配置文件application.yml 以及 application.properties
  • 语法如下:
  • application.yml
server:
  port: 8888  # 修改端口号
person:
  name: kobe
  age: 41
  sex:
  • k:(空格)v:表示一对键值对(空格必须有);
    以空格的缩进来控制层级关系;
    只要是左对齐的一列数据,都是同一个层级的
    属性和值也是大小写敏感
  • application.properties
server.port=8888
person.name=kobe
person.age=41
person.sex=

spring boot项目中应用yml

  • 将JavaBean注入到配置文件中
  • 定义实体类Person
// 将当前类创建等工作交给spring容器管理
@Component
// 表示该类需要读取的配置信息,prefix用于指示读取哪一个配置信息 与application.yml文件对应
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private String sex;
    private Occupation  occupation;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Occupation getOccupation() {
        return occupation;
    }

    public void setOccupation(Occupation occupation) {
        this.occupation = occupation;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", occupation=" + occupation +
                '}';
    }
}
  • 编写Person类遇到警告处理
    在这里插入图片描述
    在这里插入图片描述
  • pom.xml修改
<!--解决Person.java文件注解@ConfigurationProperties(prefix = "person")警告问题-->
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-configuration-processor</artifactId>
     <optional>true</optional>
 </dependency>
  • 定义实体类OccupationPerson类中存在成员Occupation
public class Occupation {
    private String occ;
    private String team;

    public String getOcc() {
        return occ;
    }

    public void setOcc(String occ) {
        this.occ = occ;
    }

    public String getTeam() {
        return team;
    }

    public void setTeam(String team) {
        this.team = team;
    }

    @Override
    public String toString() {
        return "Occupation{" +
                "occ='" + occ + '\'' +
                ", team='" + team + '\'' +
                '}';
    }
}
  • 全局配置文件application.yml
server:
  port: 8888  # 修改端口号
person:
  name: kobe
  age: 41
  sex:occupation:
    occ: basketball player
    team: Los Angeles Lakers
  • controller文件编写
@RestController
@RequestMapping("hello")
public class HelloController {
    @Autowired
    private Person person;
    
    @RequestMapping("person")
    public Person personInfo(){
        return person;
    }
}

小结:

1.此次项目用到的注解@Component@ConfigurationProperties
  • @Component:将当前类创建等工作交给spring容器管理(使用次注解后才可使用@ConfigurationProperties注解)
  • @ConfigurationProperties:将当前类的所有属性和配置文件中的相关信息进行绑定
  • @Autowired:根据类型自动注入(使用后即可访问注入的对象)
2.spring boot中全局配置文件的文件名称必须为 application,可使用application.propertiesapplication.yml,但推荐使用application.yml
  • 优点(个人观点):
    直观的树状结构
    相较于application.properties书写方便
  • 缺点
    无法使用@PropertySource 注释加载yaml文件
    需要以这种方式加载值的情况下,需要使用***.properties文件
  • 在项目中的不同位置的优先级:(由上往下依次递减)
    项目根目录中的config 文件夹中的application.yml
    项目根目录中的application.yml
    项目中的resources文件夹中的config 文件夹中的 application.yml
    项目中的resources文件夹中的application.yml
    推荐使用: 项目中的resources文件夹中的application.yml
  • 延申:也可使用***.yml为配置类注入属性
3.关于@ConfiturationProperties(prefix = "xxxx") 中prefix属性

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值