SpringBoot核心配置文件

一、核心配置文件

(1)application.properties

(2)application.yml

(3)原理一样,格式不同,当两种格式的核心配置文件同时存在时,2.4.0以上的版本的SpringBoot优先使用以.yml为后缀的核心配置文件,2.4.0以下版本的SpringBoot优先使用.properties为后缀的核心配置文件。

(4)其他相关配置可查询

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

二、自定义配置信息&属性注入

属性注入(将配置文件内的属性注入都对应的类对象当中)

(1)@Value:在配置文件内定义好学生信息,在学生类中使用注解@Value注入

package com.cld.demo.bean;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class Student {

    @Value("${student.name}")
    private String name;

    @Value("${student.classes}")
    private String classes;

    public String getName() {
        return name;
    }
    
    public String getClasses() {
        return classes;
    }
}
    @Autowired
    Student student;

    @Test
    public void testStudent(){
        System.out.println("学生姓名:" + student.getName());
        System.out.println("学生班级:" + student.getClasses());
    }

(2)@ConfigurationProperties(prefix = "teacher"):在配置文件内定义好教师信息,在教师类内批量注入(教师类内需要提供setter方法,才能够注入)

package com.cld.demo.bean;

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

@Component
@ConfigurationProperties(prefix = "teacher")
public class Teacher {

    private String name;//姓名
    private Integer age;//年龄
    private String classes;//班级

    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 getClasses() {
        return classes;
    }

    public void setClasses(String classes) {
        this.classes = classes;
    }
}
    @Autowired
    Teacher teacher;

     @Test
    public void testTeacher(){
        System.out.println("教师姓名:" + teacher.getName());
        System.out.println("教师年龄:" + teacher.getAge());
        System.out.println("教师班级:" + teacher.getClasses());
    }

三、自定义配置文件和自定义配置类

1、@PropertySource加载自定义配置文件:当把所有的配置信息都写在核心配置文件的时候,就会出现配置文件配置信息内容过多,不便查询和修改没课自定义配置存放不同情况的配置信息。要使用自定义配置文件,需要加载 

新建自定义配置文件teacher.properties

在Teacher类内指定加载teacher.properties文件,并进行属性注入

注意:@PropertySource("classpath:teacher.properties")只能够加载properties格式的配置文件

2、@Configuration定义配置类,@Bean 注册Bean组件到IOC容器中

(1)定义一个MyService类

(2)编写MyConfig配置类

3、@ImportResource加载xml配置文件

(1)配置文件Beans.xml

(2)启动类加上@ImportResource("classpath:beans.xml")

四、多环境配置

1、配置文件命名标识:application-(文件标识名).properties

分别编写测试环境的配置文件application-test.properties和生产环境的配置文件application-dev.properties,在核心配置文件application.properties里面通过spring.Profiles.active属性激活配置环境。

2、@Profile注解:标识不同的配置环境,作用于类

(1)配置类内编写

(2)激活

  • 方式一:在核心配置文件内通过spring.profiles.active属性激活

  • 方式二:@ActiveProfile激活
@SpringBootTest
@ActiveProfiles("service1")
class DemoApplicationTests {  
   @Autowired
    MyService myService;

    @Test
    public void testProfile(){
        System.out.println(myService.say());
    }

}

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值