`

spring boot 注入properties属性文件的值 @ConfigurationProperties

 
阅读更多

在spring boot

1.建立一个普通的bean,利用@ConfigurationProperties:

@Configuration
@ConfigurationProperties(locations = "classpath:properyname.properties", prefix = "datasource")
public class PropertyBean {
    @NotBlank
    private String driverClassName;
    @NotBlank
    private String url;
    @NotBlank
    private String userName;

....................get、set方法

开启扫描此bean,spring application会生成一个PropertyBean

2.@ConfigurationProperties会绑定properties中的值,并且支持层级关系

@ConfigurationProperties(locations = "classpath:mail.properties", 
ignoreUnknownFields = false, prefix = "mail")
public class MailProperties {

    public static class Smtp {

        private boolean auth;
        private boolean starttlsEnable;

        // ... getters and setters
    }

    @NotBlank
    private String host;
    private int port;  
    private String from;
    private String username;
    private String password;
    @NotNull
    private Smtp smtp;

 

3.利用@PropertySource注解

@Configuration
@PropertySource("classpath:mail.properties")
public class MailConfiguration {

    @Value("${mail.protocol}")
    private String protocol;
    @Value("${mail.host}")
    private String host;
    @Value("${mail.port}")
    private int port;
    @Value("${mail.smtp.auth}")
    private boolean auth;
    @Value("${mail.smtp.starttls.enable}")
    private boolean starttls;
    @Value("${mail.from}")

spring boot 会自动注入mail.properties中的值

 

mail.properties:

mail.host=localhost
mail.port=25
mail.smtp.auth=false
mail.smtp.starttls-enable=false
mail.from=me@localhost
mail.username=
mail.password=

 

 4.

@Configuration
@PropertySource("classpath:datasource.properties")
public class DataSourceConfig {

    @Resource
    private Environment env;

public void getValue() {

String name = env.getRequiredProperty("datasource.name");

}

 

datasource.properties:

datasource.username=root

 

参考:http://www.javacodegeeks.com/2014/09/using-configurationproperties-in-spring-boot.html

分享到:
评论

相关推荐

    @ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现

    @ConfigurationProperties是Spring Boot提供的一种强大的特性,用于将配置文件(如application.properties或application.yml)中的键值对映射到Java对象的属性上。这使得我们可以更方便地管理和使用配置信息,尤其是...

    软件框架技术-使用@Component@ConfigurationProperties等方法实现将配置文件的注入,并在控制台显示

    在本文中,我们将深入探讨如何在Java Spring框架中利用`@Component`和`@ConfigurationProperties`注解将配置文件中的属性注入到bean中,并在控制台进行显示。这对于理解和掌握Spring框架的应用以及如何处理配置文件...

    Spring boot将配置属性注入到bean类中

    在Spring Boot中,属性注入是核心特性之一,它使得我们可以方便地将配置文件中的参数值注入到Bean类的属性中,从而实现灵活的配置管理。本文将详细讲解如何利用`@ConfigurationProperties`注解以及与`@...

    spring boot 使用 ConfigurationProperties.docx

    在Spring Boot中,`@ConfigurationProperties` 是一个强大的特性,用于将配置文件(如application.properties或application.yml)中的键值对映射到Java对象的属性上。这使得开发者能够更方便地管理和使用配置信息,...

    Spring Boot自定义配置属性源(PropertySource)

    例如,创建一个`DemoProperties`类,声明对应的getter和setter方法,然后在`DemoAutoConfiguration`类中通过`@Autowired`注入这个对象,Spring Boot会自动将配置文件中的相应属性值填充到这个对象中。 如果需要更...

    spring4.0引用properties

    `PropertyPlaceholderConfigurer`是Spring早期版本中用于注入properties文件中值的bean,而`@ConfigurationProperties`是Spring Boot引入的,更适合现代Spring应用。 使用`PropertyPlaceholderConfigurer`的例子...

    Spring Boot技术知识点:如何获取application.yml配置文件里的相关属性(方法1)

    一旦配置类被定义并添加到Spring容器中,我们可以在任何需要的地方注入`CustomProperties`,然后通过getter方法获取属性值: ```java package com.example.service; import com.example.config.CustomProperties; ...

    Spring Boot技术知识点:如何获取application.yml配置文件里的相关属性(方法2)

    Spring Boot提供了简单且强大的方式来处理配置文件,特别是通过`application.yml`或`application.properties`。在这个主题中,我们将深入探讨如何利用Java代码从`application.yml`配置文件中获取相关属性,采用的是...

    Spring Boot读取配置文件常用方式

    Spring Boot默认支持两种主要的属性文件格式:`application.properties`和`application.yml`。前者使用键值对形式,后者使用YAML(YAML Ain't Markup Language)语法,提供更丰富的结构化数据表示。 2. **外部化...

    SpringBoot系列之 PropertySource用法的简介.docx

    4. **使用`@ConfigurationProperties`**: 我们创建了一个名为`User`的Java类,用`@Component`标记使其成为Spring管理的bean,然后用`@PropertySource`指定属性文件,最后用`@ConfigurationProperties(prefix = "user...

    Spring Boot技术知识点:如何理解@Value注解

    1. **属性文件**:Spring Boot默认从`application.properties`或`application.yml`文件中读取配置。 2. **环境变量**:系统环境变量也可以作为配置源。 3. **命令行参数**:通过`--key=value`的形式在启动时指定。 4...

    SpringBoot获取yml和properties配置文件的内容

    在`YmlConfig`类中,我们定义了getter和setter方法,以便Spring Boot可以通过这些方法注入配置属性的值。对于基本类型的属性(如`simpleProp`),需要提供setter方法;但对于集合和映射,Spring Boot会自动处理填充...

    Spring Boot_配置文件-多环境配置

    在应用启动后,Spring Boot会自动将`application.properties`中`database.*`开头的属性注入到这个类中。 在实际项目中,我们通常将敏感配置如数据库密码等存储在环境变量或外部配置中心(如Spring Cloud Config ...

    spring使用属性文件

    Spring Boot引入了`@ConfigurationProperties`注解,允许我们将属性文件中的整个段落映射到一个Java类的字段上,提供更强大的类型安全和对象模型绑定。 7. **YAML格式** 虽然这里提到的是属性文件,但Spring Boot...

    spring boot 注入 property的三种方式(推荐)

    @ConfigurationProperties 是 Spring Boot 提供的一个注解,用于将 Property 文件的属性映射到当前类中。使用这个注解可以将 Property 文件的属性自动注入到对应的字段中。 例如,假设我们有一个名为 "my....

    Spring 读取properties文件key+value方式.rar

    对于复杂配置,Spring Boot提供`@ConfigurationProperties`注解,可以将整个properties文件映射到一个bean: ```java @ConfigurationProperties(prefix = "database") public class DatabaseConfig { private ...

    spring-demo09-读取properties配置文件内容.zip

    在`spring-demo09-读取properties配置文件内容`这个示例中,你可以学习到如何将配置文件的值注入到Java代码中,以便在程序运行时使用。通过这种方式,我们可以轻松地更改配置而无需修改代码,极大地提高了项目的可...

    Spring Boot 技术知识点:如何理解@PropertySource注解

    在Spring Boot应用中,@PropertySource注解是一个关键的组件,它允许我们从外部源加载属性值,使得我们的配置更加灵活和可维护。这个注解主要用于Spring框架,但与Spring Boot的集成使得它在现代Java应用程序中的...

    SpringBoot第 5 讲:SpringBoot+properties配置文件读取

    `@Value`会自动从`properties`文件中查找对应的键,并将其值注入到字段中。 3. **Environment对象** 另一种获取配置的方式是通过`Environment`对象,它是SpringBoot应用中的一个核心组件。在需要配置信息的类中,...

Global site tag (gtag.js) - Google Analytics