Spring5 官方文档第三章Bean学习笔记(一)

1、设置别名,<alias name= "fromName" alias = "toName">

2、通常情况下,指定要构造的bean类,容器本身通过反射调用bean
的构造方法直接创建bean,与在java代码中使用new是等价的。

3、使用构造函数方式创建bean时,要提供无参的构造方法。

4、当通过静态工厂方法创建对象时,首先,创建对象时,通过传入接口实例,来创建对象,配置时,bean中传入的不再是实现类,而是静态工厂类,需要添加factory-method属性,也就是静态工厂方法名字,同时在bean的子标签<constructor-arg>中配置该工厂方法的参数,bean的子标签<property>设置setter方法要传入的值。

5,使用实例工厂的话,不同之处在于要配置实例工厂的bean。当有多个工厂时,都需要进行配置。

6,基于构造函数的依赖注入:
<construct-args>

ref标签设置引用类型的参数。
type标签表示参数类型,基本数据类型可以直接写,比如int。String要写为java.lang.String
index显示指定参数索引
如果出现参数名称歧义的问题,可以使用@ConstructorProperties注解重新设置参数名称。
例如:@ConstructorProperties({"years", "ultimateAnswer"})

7、在setter方法上面添加注解@Required来检查依赖是否注入。

8、如果第三方库没有提供setter方法,使用构造函数注入是一个很好的选择。

9、容器分层,父容器id与子容器id名称相同,可以使用ref标签的parent属性。

10、当使用bean的集合合并的时候,子集合的bean标签的parent属性定义父集合,子集合的props标签的merge属性为true时,可以将父子集合的merge属性进行合并。

11、Spring把null字符串都默认为''",用<null/>表示null值

12、xmlns:p="http://www.springframework.org/schema/p"
可以使用p标签简略编写。

<bean name="classic" class="com.example.ExampleBean">
<property name="email" value="foo@bar.com"/>
</bean>

<bean name="p-namespace" class="com.example.ExampleBean"
    p:email="foo@bar.com"/>

13.可以使用混合属性名字,例如:
<bean id="foo" class="foo.Bar">
<property name="fred.bob.sammy" value="123" />
</bean>

foo.Bar类中,有一个属性fred,fred中有bob,bob中有sammy,sammy的值为123。
在这里,最后一个属性前面的所有属性不能为null,也就是fred、bob不能为null。

14、bean标签的属性depends-on="A",仅在singleton模式下适用,表示当前A类在当前bean初始化之前初始化,在当前bean销毁之前销毁。depends-on中可以存放多个值,可以使用空格,逗号,或者分号分隔开。

15、bean标签中的属性lazy-init属性为true,为延迟加载,lazy-init,ApplicationContext在读取所有的bean的时候,会对所有bean进行预初始化,如果不希望IOC对该bean进行与初始化,而是在第一次请求的时候,直接创建一个bean实例。

16、当一个延迟加载的bean是一个非延迟加载的Singleton bean的依赖时,ApplicationContext会初始化这个延迟加载的bean,因为必须提供Singleton bean的依赖。在其他地方是非延迟初始化的。

17、自动装配bean,默认是没有自动装配的,也就是Autowired=true
自动装配有四种模式:
---- no:默认为no,无自动装配,当系统比较庞大的情况下,Spring官方推荐使用默认装配,因为这样可以很清晰的描述系统结构。
---- byName:通过属性名称自动装配,找到对应名称的bean,通过setter方法将属性名称赋值。
---- byType:通过类型自动装配,如果系统中只有一个属性的类型与之对应,那么将自动装配,如果该类型大于一个的话,会抛出异常,如果没有的话,那么bean的属性的不会被赋值。
---- constructor:通过构造函数自动装配,如果没有与之对应的bean的参数类型,那么会出现错误。

18、property与constructor-arg会覆盖自动装配。

19、bean标签的autowire-candidate=false,可以将该bean排除在自动装配之外。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容