springboot中获取配置文件中属性值的几种方式

目录

    • 第一章、使用@Value注解
    • 第二章、使用@PropertySource注解
    • 第三章、使用@Configurationproperties注解
    • 第四章、使用Java Properties类
    • 第五章、使用Environment接口

友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。有用记得关注

第一章、使用@Value注解

①@Value注解用于获取配置文件中的属性定义并绑定到Java Bean或属性中。在核心配置文件applicatin.properties中,添加两个自定义配置项school.name和school.website。
springboot中获取配置文件中属性值的几种方式_第1张图片

②在SpringBootController中定义属性,并使用@Value注解或者自定义配置值,并对其方法进行测试

package com.example.springboot.web;

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

@Controller
public class SpringBootController {
    @Value("${school.name}")
    private String schoolName;

    @Value("${school.websit}")
    private String schoolWebsit;

    @RequestMapping(value = "/springBoot/first")
    @ResponseBody
    public String say() {
        return schoolName + "------" + schoolWebsit;
    }
}

③访问浏览器成功,说明成功通过@value读取配置的属性值
springboot中获取配置文件中属性值的几种方式_第2张图片

第二章、使用@PropertySource注解

@PropertySource(“classpath:coremail.properties”)是指定配置文件位置的注解。Spring 可以在类路径下找到并加载这个coremail.properties属性文件。需要再在属性上面搭配@value注解使用其中定义的属性值。
springboot中获取配置文件中属性值的几种方式_第3张图片
或者这样
springboot中获取配置文件中属性值的几种方式_第4张图片

第三章、使用@Configurationproperties注解

@Configurationproperties(prefix=”xxx”)prefix的作用是区分同名配置,如果不指定,那么会去配置文件中寻找与该类的属性名一致的配置文件。
prefix怎么使用呢?
在生产环境配置文件applicatin-product.properties中,有自定义的三个school前缀的配置项
springboot中获取配置文件中属性值的几种方式_第5张图片

在核心配置文件applicatin.properties中激活生产环境,这里的product对应文件名application-produc的横杠后面的produc
springboot中获取配置文件中属性值的几种方式_第6张图片
当指定prefix之后,就不需要再在属性上面搭配@value注解使用,因为当指定前缀school之后,属性就会自动注入
springboot中获取配置文件中属性值的几种方式_第7张图片

第四章、使用Java Properties类

Properties prop = new Properties();
try (InputStream input = new FileInputStream("config.properties")) {
    prop.load(input);
    String dbUrl = prop.getProperty("db.url");
    String dbUser = prop.getProperty("db.user");
    String dbPassword = prop.getProperty("db.password");
    // 使用读取到的属性进行后续操作
} catch (IOException ex) {
    ex.printStackTrace();
}

第五章、使用Environment接口

配置文件如图:
springboot中获取配置文件中属性值的几种方式_第8张图片

获取配置文件中的属性值:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

 	public static String Value1 ;
 	public static String Value2 ;
 	
    @Autowired
    private Environment environment;

    public void getPropertyFromEnvironment() {
        Value1 = environment.getProperty("school.name");
        Value2 = environment.getProperty("school.buile.age");
        System.out.println("Value1: " + Value + "Value1: "+Value2 );
    }
}

你可能感兴趣的:(开发中遇到的一些需求,spring框架汇总,spring,boot,java,后端)