@Configuration(proxyBeanMethods = false) 解析

news/2024/4/16 22:37:02

又是美好的一天呀~
个人博客地址: huanghong.top

往下看看~

  • @Configuration(proxyBeanMethods = false) 解析
    • proxyBeanMethods分析
    • 总结

@Configuration(proxyBeanMethods = false) 解析

最近看一些源码的时候,发现很多Configuration配置类上@Configuration(proxyBeanMethods = false) 都把proxyBeanMethods设置成了false,特地研究下。
在这里插入图片描述

源码中默认是true,对这个属性的解释也可以大概知道。

proxyBeanMethods分析

  1. 如果为true, 则表示被@Bean标识的方法都会被CGLIB进行代理,而且会走bean的生命周期中的一些行为(比如:@PostConstruct,@Destroy等 spring中提供的生命周期), 如果bean是单例的,那么在同一个configuration中调用
    @Bean标识的方法,无论调用几次得到的都是同一个bean,就是说这个bean只初始化一次。

  2. 如果为false,则标识被@Bean标识的方法,不会被拦截进行CGLIB代理,也就不会走bean的生命周期中的一些行为(比如:@PostConstruct,@Destroy等 spring中提供的生命周期),如果同一个configuration中调用@Bean标识的方法,就只是普通方法的执行而已,并不会从容器中获取对象。所以如果单独调用@Bean标识的方法就是普通的方法调用,而且不走bean的生命周期。

总结

如果配置类中的@Bean标识的方法之间不存在依赖调用的话,可以设置为false,可以避免拦截方法进行代理操作,也是提升性能的一种优化。但是需要注意,@Bean标识的返回值对象还是会放入到容器中的,从容器中获取bean还是可以是单例的,会走生命周期。

感谢阅读完本篇文章!!!
个人博客地址: huanghong.top


http://www.ppmy.cn/news/64217.html

相关文章

阿里、京东等大厂年薪50w的测试都是什么水平?

各位做测试的朋友,但凡经历过几次面试,那么你一定曾被问到过以下问题: 1、在Linux环境下,怎么执行web自动化测试? 2、Shell如何,Docker熟悉吗? 3、全链路的压测实操过吗,如何推进与开…

如何使用Typeface-Helper-自定义字体

随着科技的不断发展,人们对于视觉效果的要求也越来越高。在设计领域中,字体设计是非常重要的一环,因为它直接影响了整个设计的风格和品质。因此,越来越多的设计师开始寻找能够帮助他们自定义字体的工具。在这个过程中,…

【JavaEE初阶】文件操作——IO

摄影分享~ 文章目录 文件文件路径(Path) 文件的类型Java中操作文件File概述 文件内容的读写——数据流字节流InputStream概述OutputStream 概述字符流FileInputStream 概述利用 Scanner 进行字符读取 实例练习 文件 文件:File这个概念&…

KingbaseES 的角色和权限管理

KingbaseES使用角色的概念管理数据库访问权限。为了方便权限管理,用户可以建立多个角色,对角色进行授权和权限回收,并把角色授予其他用户。 数据库初始化时,会创建一个超级用户的角色:system(默认,可修改)。…

洗地机怎么选?高性价比家用洗地机推荐

洗地机是一款高效、智能的清洁设备,可轻松去除地面污渍,免除了传统清洁方式的繁琐和费时。采用高科技材料和技术,可快速有效地将地面污物清除,保持环境卫生和清爽。但是面对市场上众多的洗地机品牌,许多家人们都不知道…

手敲Mybatis(十)-完善ORM框架支持增删改查

我们把基本的功能都完成了,解析xml、构建映射代理、执行sql,解析处理结果,目前这些只支持查询,我们还差添加下增删改的功能,本章节就来完善下增删改,其实本章节比较简单,因为之前的每个章节都已…

KingbaseES 实现 MySQL 函数 last_insert_id

用户从mysql迁移到金仓数据库过程中,应用中使用了mysql函数last_insert_id()来获取最近insert的那行记录的自增字段值。 mysql文档中关于函数的说明和例子: LAST_INSERT_ID() 如果没有参数,则LAST_INSERT_ID()返回一个BIGINT UNSIGNED(64位)值…

Linux内核源码分析-进程调度(三)-从进程创建到唤醒的过程去了解CFS调度器

进程的创建是通过do_fork函数。新进程的诞生,我们调度核心层会通知调度类来初始化新进程。 我们一路顺着do_fork函数往下看:do_fork()->_do_fork()->copy_process()->sched_fork()。 long do_fork(unsigned long clone_flags, // 创建进程的标…

八岁都能懂:O(N)条件下在N个元素中找出第K小的元素

目录 1 进入情境1-1 金字塔道具1-2 感觉还不够1-3 万能筛子1-4 怎么用呢 2 代码实现2-1 伪代码描述2-2 完整实例c 3 引申3-1 完美的折半舍弃3-2 找出前K小的元素(topK方法)3-3 O(n)效率下求中位数参考资料 1 进入情境 生日,朋友送了一堆弹珠,…

API Design principle 一些API设计原则

API(应用程序编程接口)是一种规范,定义了不同软件组件之间如何进行交互。API 描述了一组操作、输入和输出,这些操作独立于实现,使得开发人员可以访问其他程序、库或框架的功能,而无需了解其底层实现细节。A…

【论文笔记】Attention和Visual Transformer

Attention和Visual Transformer Attention和Transformer为什么需要AttentionAttention机制Multi-head AttentionSelf Multi-head Attention,SMA TransformerVisual Transformer,ViT Attention和Transformer Attention机制在相当早的时间就已经被提出了&…

VUE 学习笔记(二)VUE的深入理解

一、VUE 简介 1.什么是VUE ? VUE 是一套用于构建用户界面的渐进式JavaScript框架 ,对于简单应用,只需要轻量小巧的核心库,对于复杂的应用,可以引入各种VUE 插件。 模板引擎是 Vue 里最主要、最核心的一个能力,在模板引…

基于趋动云部署B站大V秋葉aaaki的Stable Diffusion整合包v4--linux版

B站大V秋葉aaaki的Stable Diffusion整合V4版发布了,集成度比较高,在windows下解压缩直接就可以使用,整合的非常好。但是笔人没有RTX4090这样级别的显卡,又希望有个高速运行的效果。 所以索性到云GPU主机上来用秋叶aaaki的Stable …

医学影像系统源码,三维后处理和重建 PACS源码

医学影像系统源码,三维后处理和重建 PACS源码 医学影像系统由PACS系统、RIS系统组成,提供与HIS的接口(HL7或其他类型)。 主要功能介绍 信息预约登记 支持对患者、检查项目、申请医生、申请单据、设备等信息进行管理。且支持检查…

这次彻底不需要账号了,无需魔法永久白嫖GPT

免费GPT 自GPT风靡以来,大家用的是不亦乐乎,你用他去解决过实际问题,你用他去写过代码,你用他去修改过bug,你用他去写过sql,你用他去画过图,你问过他你能想到的任何“刁钻”问题。 你&#xff…

【最小步数模型】魔板【map<string,int>记录字符串的 变化 路径】

【最小步数模型】魔板 1. 题意解析问题一:ABC操作 具体怎么实现? 2. 普通算法3. 优化算法 原题链接 1. 题意解析 如果魔板的 原序列为 12345678 那么对应到魔板上就是 1 2 3 4 8 7 6 5 然后给出3种变化 ABC 求 所给一个序列 怎么可以变到 基准序列 问…

0.docker-日常错误

1.docker运行报错docker0: iptables: No chain/target/match by that nam? 启动docker服务报错 Error response from daemon: No such container: yn-userservice-30000 26126ca87430b74c3987817492cc890e72c36e2fec10d807e362a12f22365160 /usr/bin/docker-current: Error re…

【云计算•云原生】7.play with kubernetes在线实验环境

文章目录 1.play with kubernetes介绍2.搭建多节点nginx示例 1.play with kubernetes介绍 play with kubernetes网站链接 https://labs.play-with-k8s.com/每次登录提供4小时在线实验环境,最多可以开5个节点 2.搭建多节点nginx示例 点击左边的ADD NEW INSTANCE之…

安装好了GDAL,但是pycharm持续显示No module

突然解决了,回顾一下,好像操作如下: 一、清华镜像下载_conda文件 我下载的是gdal-3.6.2-py39h36fb4bc_0.conda和 gdal-3.6.2-py39h36fb4bc_0.tar.bz2 (好像装的是第2个,不是的话就试试另外一个) https:/…

如何用 Serverless 一键部署 Stable Diffusion?

作者 | 寒斜(阿里云智能技术专家) 思路 其实很简单, 我们只需要将镜像里面的动态路径映射到 NAS文件存储里面即可,利用 NAS 独立存储文件模型,扩展,语言包等,并且我们可以为管理 NAS 单独配置…
最新文章