首页 > 其他分享 >Spring6 探析之@Configuration 注解

Spring6 探析之@Configuration 注解

时间:2023-05-26 12:45:27浏览次数:56  
标签:Spring6 proxyBeanMethods 参数 探析 注解 Configuration true IOC

Spring6 探析之@Configuration 注解

介绍

@Configuration 注解大家都不陌生,该注解有以下特点

  • 必须在类上使用
  • 能够将被注解的类加载到IOC容器里
  • 能够将类中被@Bean注解标记的方法加载到IOC容器里

@Configuration 有一些参数,其中最值得关注的是proxyBeanMethods ,该参数值默认为true

  • 参数为true时,为单例模式,每次从IOC拿到的都是同一个对象
  • 参数为false时,为原子模式,每次拿到的是不同的对象

下面是 @Configuration 注解的源码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
    
	@AliasFor(annotation = Component.class)
	String value() default "";

	boolean proxyBeanMethods() default true;

	boolean enforceUniqueMethods() default true;

}

其中,value 参数也是常用的一种,作用是为IOC中的实例指定 bean id

验证 proxyBeanMethods 参数

可以使用以下代码验证 proxyBeanMethods 参数,其中,代码中 Config.class 类为被@Configuration 标注的类,Person 为任意的bean对象

  • 当proxyBeanMethods=true 时,输出 true,代表从IOC中拿到了相同的实例
  • 当proxyBeanMethods=false时,输出false,代表从IOC中拿到了不同的实例

image-20230525220844723

image-20230525220635544

标签:Spring6,proxyBeanMethods,参数,探析,注解,Configuration,true,IOC
From: https://www.cnblogs.com/acdongla/p/17434422.html

相关文章

  • 关于SpringBoot AutoConfiguration
    (1)如何导入的自动配置类首先我们得从@SpringBootApplication注解入手。@SpringBootApplicationpublicclassSpringBootDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SpringBootDemoApplication.class,args);......
  • 8 Kubernetes Scanner to find Security Vulnerability and Misconfiguration
    https://geekflare.com/kubernetes-security-scanner/YouareusingKubernetes.Great!Howaboutitssecurity?WeallknowthatKuberneteshasbecomeoneofthebestcontainerorchestrationplatformstoday.Morethan80%oforganizationstodayareleveraging......
  • Plugin execution not covered by lifecycle configuration
    异常信息:[color=red]Pluginexecutionnotcoveredbylifecycleconfiguration:com.google.code.maven-svn-revision-number-plugin:svn-revision-number-maven-plugin:1.13:revision(execution:default,phase:validate)Pluginexecutionnotcovere......
  • 解决Maven报Plugin execution not covered by lifecycle configuration
    解决Maven报Pluginexecutionnotcoveredbylifecycleconfiguration按照这个来,然后再创建maven工程和项目,可能解决问题.解禁MAVEN“Pluginexecutionnotcoveredbylifecycleconfiguration”问题[url]http://blog.sina.com.cn/s/blog_725eee7......
  • Tomcat10依赖问题 jakarta.servlet-api 6.0.0 spring6.x.x
    org.springframework.web.servlet.DispatcherServlet’isnotassignabletojavax.servlet.Servlet1、pom.xml配置<dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifact......
  • 架构师日记-从数据库发展历程到数据结构设计探析
    作者:京东零售刘慧卿一数据库发展史起初,数据的管理方式是文件系统,数据存储在文件中,数据管理和维护都由程序员完成。后来发展出树形结构和网状结构的数据库,但都存在着难以扩展和维护的问题。直到七十年代,关系数据库理论的提出,以表格形式组织数据,数据之间存在关联关系,具有了良好......
  • Anaconda3 ProxyError: Conda cannot proceed due to an error in your proxy configu
    其实这里有一个悖论我的服务器不设置代理就没办法上网,但是Anaconda又提示这个exporthttps_proxy="http://ABCD:XXX"exporthttp_proxy="http://ABCD:XXX"ProxyError:Condacannotproceedduetoanerrorinyourproxyconfiguration.因为之前没有出现过这个问题解决方......
  • SpringBoot的@Configuration注解
    本文主要讲述SpringBoot的@Configuration注解。一.POJO类的声明例如有两个pojo类,分别是User和PetUser类的声明如下:publicclassUser{privateStringname;privateIntegerage;publicUser(){}publicUser(Stringname,Integer......
  • maven deploy configuration
    inpom.xml,theconfigwillbebelow:<repositories> <repository> <id>com.nomura.xxx</id> <url>http://XXXXXXX:8080/archiva/repository</url> </repository> </repositories> <distributionMana......
  • Unknown run configuration type SpringBootApplicationConfigurationType;Servlet Ser
    UnknownrunconfigurationtypeSpringBootApplicationConfigurationType社区版的idea自己安装插件,去配置大家可分享关于Java微服务相关知识,包括但不限于Java微服务开发经验、架构组成、技术交流、中间件等内容,我们鼓励springcloud架构为基础发散出击,从而达到技术积累的目的,快来沉......