spring中的一点理解

一、IOC容器理解

平常在一个方法当中,若要用到外部另一个类里的非静态方法,首先,需要先通过new一个对象,再根据这个对象去调用其方法。若只需要一两个对象还好,一旦涉及的外部对象多了,就要创建一大堆new,管理起来就很麻烦。这时候,IOC的思想就起到关键作用了,它可以实现把创对象创建与操作统一交给框架管理。那么,新创建的对象都是怎么存在spring框架当中的呢?其实,这里面就用到了Map缓存。你可以简单这样理解,spring就像一个map容器,bean都存放在这个map里,若要用到map里存放的对象,就可以通过一个key去map里获取,这个key,可以是id或者bean的默认名(类名的首字母小写)。

如有这样一个类:

获取这个bean的方式为:

【注】https://www.cnblogs.com/zhujiqian/p/14971936.html

二、spring依赖注入时,什么时候会创建代理对象?

1、有的会创建代理类来替代目标类的实现。比如有事务注解啊。

2、有的直接使用目标类。啥拦截配置都没有。

【注】https://www.cnblogs.com/zcmzex/p/8822509.html

https://www.cnblogs.com/codestory/p/12161570.html

三、@Async遇到的问题

1、记录一次因@Async注解动态代理引发的问题_springboot service中方法存在async后getbean方法报错-CSDN博客

2、JDK动态代理不会生成子类,而@Async默认是jdk动态代理,因此getBean(AirConservationServiceImpl.class)报错,可以修改@Async的代理。

四、Spring中如何获取到一个Bean实例

spring之getBeanByType探究 - 简书

Spring中如何获取到一个Bean实例(二)?_怎么通过class获取bean-CSDN博客

相关推荐
彭于晏Yan1 小时前
Springboot实现微服务监控
spring boot·后端·微服务
小江的记录本1 小时前
【Spring Boot—— .yml(YAML)】Spring Boot中.yml文件的基础语法、高级特性、实践技巧
xml·java·spring boot·后端·spring·spring cloud·架构
I_LPL1 小时前
day52 代码随想录算法训练营 图论专题6
java·数据结构·算法·图论
爱敲代码的小黄2 小时前
Agent 能力模块化:Skill 设计与执行机制解析
人工智能·后端·面试
2601_953465612 小时前
m3u8live.cn深度解析:一款专为开发者打造的 M3U8 调试工具
java·前端·django·音视频·开发工具
掘金者阿豪2 小时前
告别SQL性能焦虑:金仓数据库“连接条件下推”的性能魔法
后端
稻草猫.2 小时前
SpringBoot日志全解析:从调试到持久化
java·开发语言·spring boot·java-ee·idea
zopple2 小时前
Knife4j文档请求异常(基于SpringBoot3,查找原因并解决)
java·服务器·数据库
老友@2 小时前
接口调用的演进史——从“发 HTTP 请求”到“可治理的系统能力
spring boot·后端·架构
清水白石0082 小时前
Python 弱引用深度解析——让缓存不再成为内存泄漏的温床
java·python·缓存