`
zhangyu84849467
  • 浏览: 15428 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

@EnableConfigurationProperties 和 @ConfigurationProperties 的使用

 
阅读更多

@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

分享到:
评论

相关推荐

    SpringBoot @ConfigurationProperties使用详解(源代码)

    使用@ConfigurationProperties和@Component注解到bean定义类上,这里@Component代指同一类实例化Bean的注解。 1.3 场景二 使用@ConfigurationProperties和@Bean注解在配置类的Bean定义方法上。以数据源配置为例: ...

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

    下面将详细介绍`@ConfigurationProperties`的使用方法、工作原理以及相关知识点。 1. **使用场景** - 当我们需要从配置文件中读取大量相关的属性时,如数据库连接信息、邮件服务器配置等。 - 需要将配置参数与...

    spring boot 使用 ConfigurationProperties.docx

    另外,`@ConfigurationProperties`也可以直接应用在`@Bean`注解上,这样就不需要在实体类上同时使用`@Component`和`@ConfigurationProperties`: ```java @SpringBootApplication public class DemoApplication { ...

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

    接下来,我们讨论`@ConfigurationProperties`和`@EnableConfigurationProperties`的结合使用。`@EnableConfigurationProperties`用于开启对`@ConfigurationProperties`注解的Bean的注册和绑定。通常,我们不需要显式...

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

    为了使Spring容器能够识别并绑定这些配置,还需要在主配置类或任何其他配置类上使用`@EnableConfigurationProperties(DatabaseConfig.class)`注解。这样,Spring会自动将配置文件中的值注入到`DatabaseConfig`实例中...

    SpringBoot @ConfigurationProperties使用详解

    【SpringBoot @ConfigurationProperties 使用详解】 在Spring Boot中,`@ConfigurationProperties`是用于将配置文件中的属性绑定到Java Bean的注解,极大地简化了属性的管理,使得配置更加灵活和类型安全。以下是对...

    GetYamlUtil.rar

    如果你不想使用`@ConfigurationProperties`和`@EnableConfigurationProperties`,也可以直接通过`YamlPropertySourceLoader`和`Resource`来读取`.yml`文件。这里我们介绍一个简单的Java工具类`GetYamlUtil`: ```...

    SpringBoot yml配置文件调用过程解析

    SpringBoot yml 配置文件调用过程解析主要包括 yml 配置文件的书写格式、在 Controller 层中取值、pojo 对象的使用和使用 @EnableConfigurationProperties 注解等。通过本文的介绍,读者可以更好地了解 SpringBoot ...

    Spring Boot中的属性绑定的实现

    在本文中,我们将详细介绍Spring Boot中的属性绑定实现,包括@ConfigurationProperties注解的使用、Environment和Binder的作用。 一、@ConfigurationProperties注解 @ConfigurationProperties注解是Spring Boot...

    spring4.0引用properties

    总结起来,Spring 4.0提供了多种方式来引用和使用properties文件,包括`PropertyPlaceholderConfigurer`和`@ConfigurationProperties`。理解并掌握这些方法可以帮助开发者更好地管理和利用应用程序的配置,提高代码...

    自定义springboot的starterDemo

    - 创建一个Java配置类,使用`@Configuration`和`@EnableConfigurationProperties`注解。这个类将包含自动配置的逻辑,用于初始化你的组件和服务。 3. **创建@ConfigurationProperties** - 为了处理自定义的属性,...

    在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息

    它提供了强大的依赖注入(DI)机制,使得我们可以方便地管理和使用Bean。然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细...

    Spring@注解.md

    在Java面向对象编程中,对象包含属性和方法,为了使用这些属性和方法,我们需要创建对象实例。因此,在Spring中,所有需要实例化的类都可以被看作是Bean。 - **Bean的注册**:通常情况下,带有方法或属性的类都...

    SpringBoot中使用类型安全的配置来注入大量自定义属性示例源码

    创建一个Java类,比如`AppConfig`,并使用`@ConfigurationProperties`注解。注解中的`prefix`属性用于指定配置文件中对应的前缀,如`app`,这样配置文件中的`app.*`属性就会被注入到这个类的字段中。 ```java @...

    spring02-6

    Spring通过`@Value`注解和`PropertyPlaceholderConfigurer`(在Spring 3.1以后被`@ConfigurationProperties`替代)等方式来实现属性注入。下面,我们将深入探讨这一概念及其应用。 首先,让我们了解什么是属性文件...

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

    为了让Spring能识别并处理这个配置类,我们需要在主配置类或者任何Spring组件上使用`@EnableConfigurationProperties`注解,指定我们刚刚创建的配置类: ```java import org.springframework.boot.autoconfigure....

    SpringCloud知识点暨面试题总结(2).pdf

    @EnableConfigurationProperties注解通常位于配置类上,它可以指定一个或多个带有@ConfigurationProperties注解的类,并确保这些类被Spring容器管理。 3. @ConditionalOnMissingBean注解:这是SpringBoot中用于条件...

    Spring 开发之组件赋值的实现方法

    7. 自定义属性注入7.1 使用 @ConfigurationProperties将配置文件中的复杂结构映射到一个 Java 类,需添加 @Component 或 @ConfigurationProperties 标注,并使用 @EnableConfigurationProperties 开启支持7.2 示例...

    minio 安装步骤以及springboot 如何集成minio

    将MinIO集成到SpringBoot应用中,可以方便地管理和使用对象存储服务。下面我们将详细探讨MinIO的安装过程以及如何在SpringBoot应用中进行集成。 ### MinIO的安装步骤 1. **下载MinIO**: 首先,你需要从MinIO的官方...

    minio+springboot集成

    3. **创建MinIO配置类**:编写一个配置类,使用`@ConfigurationProperties`来注入上面配置的属性,并利用`@EnableConfigurationProperties`注解启用它们: ```java @Configuration @...

Global site tag (gtag.js) - Google Analytics