spring boot 中@EnableConfigurationProperties({SayHelloProperties.class})有什么用
时间: 2024-07-16 08:01:08 浏览: 66
在Spring Boot中,`@EnableConfigurationProperties({SayHelloProperties.class})`是一个注解,用于启用@ConfigurationProperties配置类。当你在一个@Configuration类上应用这个注解时,它告诉Spring Boot自动扫描并实例化指定的`SayHelloProperties`类,该类通常会作为bean提供配置属性,比如从application.properties或application.yml文件中读取的配置值。
`SayHelloProperties.class`指定了特定的属性类路径,例如,如果`SayHelloProperties`有一个名为greeting的属性,那么你可以通过@Autowired注入这个属性,并直接访问`greeting`字段来获取配置项如"hello world"之类的字符串。
这种方式简化了配置管理,使得配置更集中,易于理解和维护。此外,Spring Boot也支持环境变量替换,所以在不同的环境(dev、prod等)下,可以方便地更改这些配置值。
相关问题
@EnableConfigurationProperties(SecurityProperties.class)
@EnableConfigurationProperties(SecurityProperties.class)是一个Spring Boot提供的注解,用于启用应用对@ConfigurationProperties注解的支持。通过使用该注解,可以将带有@ConfigurationProperties注解的bean注册到容器中,并且可以通过标准的方式,如使用@Bean注解来注册或通过@EnableConfigurationProperties注解注册到容器中。
在具体的实现中,@EnableConfigurationProperties注解会委托给@EnableConfigurationPropertiesImportSelector类来完成配置属性bean的注册任务。该类会扫描类路径下的所有带有@ConfigurationProperties注解的类,并将它们注册到容器中。
在Spring Security中的SecurityAutoConfiguration类中,我们可以看到@EnableConfigurationProperties(SecurityProperties.class)的使用。该类是Spring Security核心自动配置类,它使用了@EnableConfigurationProperties注解来启用对SecurityProperties类的支持,将其注册到容器中。
总结来说,@EnableConfigurationProperties(SecurityProperties.class)是一个用于启用应用对@ConfigurationProperties注解支持的注解,可以将带有@ConfigurationProperties注解的bean注册到容器中。在Spring Security中的SecurityAutoConfiguration类中就是通过该注解来启用对SecurityProperties类的支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Spring Boot : @EnableConfigurationProperties -- 注册使用 @ConfigurationProperties 的 bean](https://blog.csdn.net/andy_zhang2007/article/details/90286737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [2、spring security流程解读之自动配置类](https://blog.csdn.net/u012153127/article/details/118195628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
@EnableConfigurationProperties(WxMaProperties.class)
### 使用 `@EnableConfigurationProperties` 注解
#### 配置属性类的作用
在 Spring Boot 应用程序中,`WxMaProperties` 类用于封装微信小程序的相关配置参数。此类通过 `@ConfigurationProperties` 和 Lombok 的 `@Data` 注解简化了 getter/setter 方法的编写[^1]。
```java
package org.jeecg.modules.education.miniapp.config;
import java.util.List;
import org.springframework.boot.context.properties.ConfigurationProperties;
import lombok.Data;
@Data
@ConfigurationProperties(prefix = "wx.miniapp")
public class WxMaProperties {
private List<Config> configs;
@Data
public static class Config {
private String appid;
private String secret;
}
}
```
#### 启用配置属性
为了使上述配置生效并能够自动加载外部配置文件中的相应属性,需使用 `@EnableConfigurationProperties` 注解来启用特定类型的配置绑定功能。此注解通常应用于主应用程序启动类或任意配置类上:
```java
package org.jeecg.modules.education.miniapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.jeecg.modules.education.miniapp.config.WxMaProperties;
@SpringBootApplication
@EnableConfigurationProperties(WxMaProperties.class)
public class MiniAppApplication {
public static void main(String[] args) {
SpringApplication.run(MiniAppApplication.class, args);
}
}
```
这样做的好处是可以让开发者更加方便地管理应用内外部化配置项,并且可以轻松实现动态刷新等功能特性。
#### 获取配置信息
当项目运行时,可以通过依赖注入的方式直接获得已经装载好数据的对象实例,从而访问其中存储的各项设置值。例如,在服务层或其他组件内部可以直接声明一个 `WxMaProperties` 变量作为成员变量来进行操作:
```java
@Service
public class WeChatService {
private final WxMaProperties wxMaProperties;
@Autowired
public WeChatService(WxMaProperties wxMaProperties){
this.wxMaProperties=wxMaProperties;
}
// ... other methods ...
}
```
以上就是关于如何利用 `@EnableConfigurationProperties` 来注册自定义配置对象以及其基本用途介绍。
阅读全文