首页 > 其他分享 >springboot @configuration

springboot @configuration

时间:2024-02-01 10:23:37浏览次数:32  
标签:Configuration springboot true Bean myBean configuration proxyBeanMethods public

@controller @service @repository 下面都是@component注解

boolean proxyBeanMethods() default true;

proxyBeanMethods 是 Spring Boot 中 @Configuration 注解的一个属性,用于控制是否应该为 @Configuration 类中通过 @Bean 方法定义的 bean 创建代理。这个属性的默认值是 true。

当 proxyBeanMethods 设置为 true 时,Spring 容器会确保在同一个 @Configuration 类中,每次通过 @Bean 方法调用另一个 @Bean 方法时,都能够返回同一个实例,即单例(Singleton)作用域的 bean。这是通过创建 @Configuration 类的 CGLIB 代理来实现的,确保了 bean 的单例语义。

@Configuration(proxyBeanMethods = true) public class MyConfig {     @Bean     public MyBean myBean() {         return new MyBean();     }       @Bean     public MyOtherBean myOtherBean() {         // 由于 proxyBeanMethods = true,这里会返回 myBean() 的单例         return new MyOtherBean(myBean());     } }    当 proxyBeanMethods 设置为 false 时,Spring 容器不会为 @Configuration 类创建 CGLIB 代理,这意味着在同一个 @Configuration 类中,每次通过 @Bean 方法调用另一个 @Bean 方法时,都会创建一个新的实例,而不是返回同一个实例。    @Configuration(proxyBeanMethods = false)
public class MyConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }

    @Bean
    public MyOtherBean myOtherBean() {
        // 由于 proxyBeanMethods = false,这里会创建一个新的 myBean 实例
        return new MyOtherBean(myBean());
    }
}
设置 proxyBeanMethods 为 false 可以提高启动时间和运行时性能,特别是在配置类不需要依赖于通过 @Bean 方法定义的 bean 之间的调用来保证单例时。然而,这也意味着你需要更加小心地管理你的 bean 实例,以避免意外创建多个实例。

 

标签:Configuration,springboot,true,Bean,myBean,configuration,proxyBeanMethods,public
From: https://www.cnblogs.com/JavaYuYin/p/18000677

相关文章

  • Java调用ChatGPT(基于SpringBoot和Vue)实现连续对话、流式输出和自定义baseUrl
     源码及更详细的介绍说明参见Git上的README.md文档https://github.com/asleepyfish/chatgpt本文Demo(SpringBoot和Main方法Demo均包括)的Git地址:https://github.com/asleepyfish/chatgpt-demo流式输出结合Vue前端的Demo的Git地址:https://github.com/asleepyfish/chatg......
  • SpringBoot中两种常用定位切点的方法
    有时候,我们使用AOP来进行放的增强,编写切面类的时候,需要定位在哪个方法上试用该切面进行增强,本文主要讲解两种在SpringBoot中定位切点的方法,一种是使用execution表达式的方法,一种则是利用自定义注解的方法。execution表达式execution表达式的方式主要是在定义切点的时候,通过表达......
  • SpringBoot介绍
    SpringBoot一、介绍我们在搭建传统SSM项目时,通常需要导入很多依赖,但每种依赖又有许多版本,这就很容易出现依赖冲突。此外,繁琐的配置也是一大痛点,太多了,让人很难记住,因此SpringBoot诞生了。SpringBoot是对Spring的深度封装,基于约定优于配置的思想,提供了大量的默认配置和实现。......
  • 基于springboot开发的工作流系统,bpmn.js,vue源码及功能分析(activiti)
    前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot+vue+activiti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平台,可插拔工作流服务。工作......
  • SpringBoot 整合多数据源的事务问题
    代码先贴代码:核心就是:Spring给我们提供的一个类AbstractRoutingDataSource,然后我们再写一个切面来切换数据源,肯定要有一个地方存储key还要保证上下文都可用,所以我们使用ThreadLocal来存储数据源的keypom.xml<dependency><groupId>org.springframework.boot</gr......
  • Java21 + SpringBoot3整合springdoc-openapi,自动生成在线接口文档,支持SpringSecurity
    目录前言相关技术简介OpenAPISwaggerSpringfoxspringdocswagger2与swagger3常用注解对比实现步骤引入maven依赖修改配置文件设置api-docs和swagger-ui访问权限定义springdoc配置类修改Controller类和实体类查看效果总结前言近日心血来潮想做一个开源项目,目标是做一款可以适配多......
  • springboot~logback控制日志文件大小与历史个数
    日志本地化,对于每个应用来说都是必须的,最起码第一时间日志是需要本地化的,然后从本地化的日志中再进行推送,例如通过fluentd将日志推到es里,通过kibana工具进行可视化分析。日志文件大小限制对于把日志持久化到磁盘,你需要设置它的占用空间,logback提供了保存文件大小和历史文件数量......
  • SpringBoot、SpringCloud相关技术
    一、三层架构 1.1统一业务处理1.2解决三层架构中的结偶,使用了Ioc(控制反转)和DI(依赖注入) 1.3切面编程、事务处理、全局异常处理、Cookie、Session、JWT令牌、阿里云OSS、Mybatis处理数据库二、技术分类说明  2.1SSM三、Web总结四、相关第三方插件https://www......
  • SpringBoot自定义注解+反射实现 excel 导入的数据组装及字段校验
    本次给大家带来的SpringBoot中通过自定义注解+反射实现excel导入数据组装及字段校验的实现方式。这种实现方式其实是很普通、常规的方法,但很多同学在开发过程中,可能却不太容易想到他。当然我也是众多同学中的一员。1背景在前段时间的开发工作中,接手了一个很简单,很普通的开发任务。......
  • Mybatis-plus分页查询(SpringBoot)
    2024-01-30OS:Windows10 22H2IDE:IDEA2022.2.5JDKversion:19Mavenversion:3.6.3数据库:MySQL8.1.0mybatis-plus:3.5.3.1 一、在springBoot启动类中将分页插件加入到ioc容器里面启动类 @SpringBootApplication@MapperScan("com.ssm.mapper")publicclassMain{......