springboot @configurationproperties,spring config配置

  springboot @configurationproperties,spring config配置

  

目录

@配置注1注2注3注4springboot自动配置

 

  

@Configuration

 

  00-1010配置类(这个类在@Configuration下)其实相当于一个工厂,annotation @Bean的方法相当于工厂方法。

  考虑下面的例子:

  @Configuration //注意1:配置类其实相当于一个工厂,标注@Bean的方法相当于工厂方法静态类my config { @ Bean public Bean 1 Bean 1(){ system . out . println( Bean 1());返回新bean 1();}

  如果以后要生成bean1的实例,必须先找到一个名为myConfig的bean(是一个工厂),然后在这个工厂中调用名为 bean1 的方法,生成bean1对象。

  对于没有静态修改的@Bean factory方法,称为实例工厂,需要先创建配置类myConfig实例;用静态修饰的是静态方法。你只需要获取myConfig的类对象,然后直接。方法就可以了。

  

注意点1

@Bean不支持方法重载。如果有多个重载方法,只能选择一个作为工厂方法。

 

  @ configuration @ mappers可以( AAA )//注意,13360配置类实际上相当于一个工厂,用@Bean标注的方法相当于工厂方法静态类MyConfig {//注意,2: @Bean不支持方法重载。如果有多个重载方法,只能选择一个作为工厂方法@ beanpublicbean 1(){ system . out . println( bean 1());返回新bean 1();} @ Bean public Bean 1 Bean 1(@ Value( $ { Java . class . version } )String a){ system . out . println( Bean 1( a ));返回新bean 1();} @ Bean public Bean 1 Bean 1(@ Value($ { JAVA . class . version } )String a,@ Value($ { JAVA _ HOME } )String b){ system . out . println( Bean 1( a , b ));返回新bean 1();}如果有重载的方法,参数中需要注入的值越多,优先级越高。

  

注意点2

@Configuration不能随便删除,因为默认情况下,会为标记的类生成一个代理,其目的是保证当@Bean方法相互调用时,仍然可以保证其单体特征。

 

  

注意点3

@配置包含BeanFactory后处理器,那么实例工厂方法会导致MyConfig过早创建,导致其依赖注入失败。解决方法是直接对@Bean使用静态工厂方法或者方法参数依赖注入,对MapperScanner可以使用annotation代替。

 

  

注意点4

@SpringBootApplication是一个组合标注,由@ComponentScan、@EnableAutoConfiguration和@SpringBootConfiguration 3360组成。

 

  @SpringBootConfiguration和普通的@Configuration相比,唯一的区别就是前者要求整个app只出现一次,因为要根据它来确定主配置类,根据主配置类就可以找到整个程序的入口。

  @ComponentScan:组件扫描

  exclude filters-用于在扫描过程中排除组件,也排除自动配置类。

  @EnableAutoConfiguration也是一个复合注释,由以下注释组成

  @ AutoconfigurationPackage用于记住扫描的起始包,即记录其所标记的类的包。

  @ import(autoconfigurationimportselector . class)用于加载meta-INF/spring.factors中的自动配置类(如果没有配置主配置类,自动配置类将使用自动配置类)

  为什么不用@Import直接引入自动配置类?

  有两个原因:

  主配置类和自动配置类是强耦合的。主配置类应该不知道哪些从配置直接使用@Import(自动配置类。类),引入的配置解析具有更高的优先级。当未提供主配置时,自动配置类的分辨率应作为默认配置。因此,@ import(autoconfigurationimportselector。类)被采用。

  autoconfigurationimportselector . class读取meta-INF/spring.factors中的自动配置类,实现弱耦合。另外,autoconfigurationimportselector . class实现了DeferredImportSelector接口,所以自动配置的分析要晚于主配置的分析。本文对Springboot自动配置和@Configuration配置类的详细解释就介绍到这里。有关Springboot自动配置的更多信息,请搜索之前关于popular IT的文章或继续浏览以下相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: