定义一个Bean(使用 @Component @Service 等注解标记) spring 生成的Bean名称是把第一个字母变成小写,其他不变
Apple -> apple User -> user
但是事实果真如此么?
beanName 生成源码如下
也就是如果开头两个字母全是大写的时候 beanName 就是类名不在作转换
!!!下面说明的也就是每次都是new一个新的Bean!!!
Spring解决单例bean线程不安全问题的姿势
A创建过程中的时候呢 需要B的时候呢,由于目前还没有B,于是A先将自己放在三级缓存中,然后先去实例化B, 实例化B的时候,由于需要A,则先去检查1级缓存没有,再去二级缓存没有,再去三级缓存找到了。然后呢把三级缓存里面的A放到二级缓存里面,并删掉三级缓存里面的A。 此时呢B顺利的完成初始化,把他自己呢放到一级缓存里面。此时B里面的A呢依然是一个创建中的状态, A只是实例化完成,没有填充属性,接着呢重新再去创建A,此时B已经创建结束了,A从一级缓存里面拿到B 完成自己的创建,并把A自己也放到一级缓存里面。如此一来成功创建了A与B 顺利完成Bean的初始化
本地代码案例 DecoderManager 类



