@ConfigurationProperties 可以 将application.properties 以指定前缀的属性应用到指定的类。
@EnableConfigurationProperties 导入启用的属性类
以mybatis的自动导入的源代码为例:
// 相当于<beans> @org.springframework.context.annotation.Configuration // 相当于 Class.forName("org.apache.ibatis.session.SqlSessionFactory") 有异常说明不存在 @ConditionalOnClass({ SqlSessionFactory.class, SqlSessionFactoryBean.class }) // 相当于 beanFactory.getBeanByType(javax.sql.DataSource.class) @ConditionalOnBean(DataSource.class) // 启用配置属性 @EnableConfigurationProperties(MybatisProperties.class) // 顺序在DataSourceAutoConfiguration.class之后 @AutoConfigureAfter(DataSourceAutoConfiguration.class) public class MybatisAutoConfiguration { private static final Logger logger = LoggerFactory.getLogger(MybatisAutoConfiguration.class); private final MybatisProperties properties; private final Interceptor[] interceptors; private final ResourceLoader resourceLoader; private final DatabaseIdProvider databaseIdProvider; private final List<ConfigurationCustomizer> configurationCustomizers; public MybatisAutoConfiguration(MybatisProperties properties, ObjectProvider<Interceptor[]> interceptorsProvider, ResourceLoader resourceLoader, ObjectProvider<DatabaseIdProvider> databaseIdProvider, ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider) { this.properties = properties; this.interceptors = interceptorsProvider.getIfAvailable(); this.resourceLoader = resourceLoader; this.databaseIdProvider = databaseIdProvider.getIfAvailable(); this.configurationCustomizers = configurationCustomizersProvider.getIfAvailable(); } }
@ConfigurationProperties(prefix = MybatisProperties.MYBATIS_PREFIX) public class MybatisProperties { public static final String MYBATIS_PREFIX = "mybatis"; /** * Location of MyBatis xml config file. */ private String configLocation; /** * Locations of MyBatis mapper files. */ private String[] mapperLocations; /** * Packages to search type aliases. (Package delimiters are ",; \t\n") */ private String typeAliasesPackage; /** * Packages to search for type handlers. (Package delimiters are ",; \t\n") */ private String typeHandlersPackage; /** * Indicates whether perform presence check of the MyBatis xml config file. */ private boolean checkConfigLocation = false; /** * Execution mode for {@link org.mybatis.spring.SqlSessionTemplate}. */ private ExecutorType executorType; /** * Externalized properties for MyBatis configuration. */ private Properties configurationProperties; /** * A Configuration object for customize default settings. If {@link #configLocation} * is specified, this property is not used. */ @NestedConfigurationProperty private Configuration configuration; }
mybatis.configLocation
mybatis.mapperLocations
mybatis.typeAliasesPackage
mybatis.configuration
如果嵌套属性 要加 @NestedConfigurationProperty
相关推荐
使用@ConfigurationProperties和@Component注解到bean定义类上,这里@Component代指同一类实例化Bean的注解。 1.3 场景二 使用@ConfigurationProperties和@Bean注解在配置类的Bean定义方法上。以数据源配置为例: ...
下面将详细介绍`@ConfigurationProperties`的使用方法、工作原理以及相关知识点。 1. **使用场景** - 当我们需要从配置文件中读取大量相关的属性时,如数据库连接信息、邮件服务器配置等。 - 需要将配置参数与...
另外,`@ConfigurationProperties`也可以直接应用在`@Bean`注解上,这样就不需要在实体类上同时使用`@Component`和`@ConfigurationProperties`: ```java @SpringBootApplication public class DemoApplication { ...
接下来,我们讨论`@ConfigurationProperties`和`@EnableConfigurationProperties`的结合使用。`@EnableConfigurationProperties`用于开启对`@ConfigurationProperties`注解的Bean的注册和绑定。通常,我们不需要显式...
为了使Spring容器能够识别并绑定这些配置,还需要在主配置类或任何其他配置类上使用`@EnableConfigurationProperties(DatabaseConfig.class)`注解。这样,Spring会自动将配置文件中的值注入到`DatabaseConfig`实例中...
【SpringBoot @ConfigurationProperties 使用详解】 在Spring Boot中,`@ConfigurationProperties`是用于将配置文件中的属性绑定到Java Bean的注解,极大地简化了属性的管理,使得配置更加灵活和类型安全。以下是对...
如果你不想使用`@ConfigurationProperties`和`@EnableConfigurationProperties`,也可以直接通过`YamlPropertySourceLoader`和`Resource`来读取`.yml`文件。这里我们介绍一个简单的Java工具类`GetYamlUtil`: ```...
SpringBoot yml 配置文件调用过程解析主要包括 yml 配置文件的书写格式、在 Controller 层中取值、pojo 对象的使用和使用 @EnableConfigurationProperties 注解等。通过本文的介绍,读者可以更好地了解 SpringBoot ...
在本文中,我们将详细介绍Spring Boot中的属性绑定实现,包括@ConfigurationProperties注解的使用、Environment和Binder的作用。 一、@ConfigurationProperties注解 @ConfigurationProperties注解是Spring Boot...
总结起来,Spring 4.0提供了多种方式来引用和使用properties文件,包括`PropertyPlaceholderConfigurer`和`@ConfigurationProperties`。理解并掌握这些方法可以帮助开发者更好地管理和利用应用程序的配置,提高代码...
- 创建一个Java配置类,使用`@Configuration`和`@EnableConfigurationProperties`注解。这个类将包含自动配置的逻辑,用于初始化你的组件和服务。 3. **创建@ConfigurationProperties** - 为了处理自定义的属性,...
它提供了强大的依赖注入(DI)机制,使得我们可以方便地管理和使用Bean。然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细...
在Java面向对象编程中,对象包含属性和方法,为了使用这些属性和方法,我们需要创建对象实例。因此,在Spring中,所有需要实例化的类都可以被看作是Bean。 - **Bean的注册**:通常情况下,带有方法或属性的类都...
创建一个Java类,比如`AppConfig`,并使用`@ConfigurationProperties`注解。注解中的`prefix`属性用于指定配置文件中对应的前缀,如`app`,这样配置文件中的`app.*`属性就会被注入到这个类的字段中。 ```java @...
Spring通过`@Value`注解和`PropertyPlaceholderConfigurer`(在Spring 3.1以后被`@ConfigurationProperties`替代)等方式来实现属性注入。下面,我们将深入探讨这一概念及其应用。 首先,让我们了解什么是属性文件...
为了让Spring能识别并处理这个配置类,我们需要在主配置类或者任何Spring组件上使用`@EnableConfigurationProperties`注解,指定我们刚刚创建的配置类: ```java import org.springframework.boot.autoconfigure....
@EnableConfigurationProperties注解通常位于配置类上,它可以指定一个或多个带有@ConfigurationProperties注解的类,并确保这些类被Spring容器管理。 3. @ConditionalOnMissingBean注解:这是SpringBoot中用于条件...
7. 自定义属性注入7.1 使用 @ConfigurationProperties将配置文件中的复杂结构映射到一个 Java 类,需添加 @Component 或 @ConfigurationProperties 标注,并使用 @EnableConfigurationProperties 开启支持7.2 示例...
将MinIO集成到SpringBoot应用中,可以方便地管理和使用对象存储服务。下面我们将详细探讨MinIO的安装过程以及如何在SpringBoot应用中进行集成。 ### MinIO的安装步骤 1. **下载MinIO**: 首先,你需要从MinIO的官方...
3. **创建MinIO配置类**:编写一个配置类,使用`@ConfigurationProperties`来注入上面配置的属性,并利用`@EnableConfigurationProperties`注解启用它们: ```java @Configuration @...