批量注入(@ConfigurationProperties @EnableConfigurationProperties)

David 2022-09-28 23:25:11
Categories: Tags:

 

参数

描述

prefix

字段的前缀

ignoreUnknownFields

是否忽略未找到的属性字段

ignoreInvalidFields

是否忽略非法字段,默认false,当为true时,有无法转换的属性时忽略,不会报错,注入的值为空

 

 

 

参数

描述

value

指定注册的类class,默认为{},即当前类

 

@EnableConfigurationProperties也可以注解在其他类中,用value指定@ConfigurationProperties的类在特定方法中加入Environment

 

 

user.name=admin

user.password=123456

示例

@Component

@ConfigurationProperties(prefix="user")

public class User{

 

    private String userName;

    private String password;

 

    public String getUserName()    {

        return userName;

    }

 

    public void setUserName(String userName) {

        this.userName = userName;

    }

 

    public String getPassword() {

        return password;

    }

 

    public void setPassword(String password) {

        this.password = password;

    }

}

 

 

@RestController

public class UserController {

 

    @Autowired

    private User user;

 

    @RequestMapping("/user")

    public String getProperties() {

        System.out.println("userName:" + user.userName);

        System.out.println("password:" + user.password);

        return "success";

    }

}

 

 

解决Spring boot的提示问题

 

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-configuration-processor</artifactId>

  <optional>true</optional>

</dependency>

 

<build>

  <plugins>

 

    <plugin>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-maven-plugin</artifactId>

    </plugin>

 

    <configuration>

      <excludes>

        <exclude>

          <groupId>org.springframework.boot</groupId>

          <artifactId>spring-boot-configuration-processor</artifactId>

        </exclude>

      </excludes>

    </configuration>

 

  </plugins>

</build>

当开启lombok时,Spring Boot会自动在打包插件中对配置处理器进行排除