spring文档解读
-
可以通过4种方式配置config
- xml
- groovy
- javaconfig 3.0
- annotation 2.5
-
使用import引入另一个xml配置文件
- 最好不要使用斜杠这种路径
- it is better form not to use the slash
- ../ 可以在根目录外引用
- 但是不推荐
- 最好不要使用斜杠这种路径
-
Groovy 基本等价于xml
-
bean里可配置的属性
可以通过beanFactory创建bean 但是正常情况下只使用配置源创建bean
单例对象最好尽早注册,以便容器自动装配和内省步骤正确推断,某种程度支持覆盖但是可能会产生并发访问异常
bean有一个或多个唯一标识符,如果需要多个可以使用别名 - aliases -
-
id只能有一个,但是name可以有多个使用空格或分隔符隔开如
<bean id="ta" name="table table2;table3,table4" class="cn.basecommon.domain.Table"> <property name="length" value="180"> </property> <property name="name" value="电脑桌"></property> </bean>
命名使用驼峰命名法·
-
别名的使用 alias
- name是本来bean的名字 alias是自己起的别名
<alias name="ta" alias="t"></alias> <bean id="ta" name="table table2;table3,table4" class="cn.basecommon.domain.Table" > <property name="length" value="180"></property> <property name="name" value="电脑桌"></property> </bean>
bean实际上是创建一个或者多个对象的方法
-
静态工厂实际是为了让spring管理不是标准bean的遗留类使用的
<!--这是一个通过静态工厂创建对象的方式--> <bean class="cn.basecommon.factory.CutFactory" factory-method="creCut" id="cutFactory"> <constructor-arg name="s" value="sss"></constructor-arg> </bean>
如果静态工厂方法需要传参,使用<constructor-arg>
-
实例工厂跟静态工厂类似 示例
<!--实例工厂bean--> <bean id="cutInstandsFactory" class="cn.basecommon.factory.CutInstandsFactory"> </bean> <bean factory-bean="cutInstandsFactory" factory-method="creCut"> <constructor-arg name="s" value="实时事"> </constructor-arg> </bean>
一个实例工厂也可以提供不止一个工厂方法为好几个类创建对象,即把上面第二段代码写一遍
-
spring通常提倡使用构造器注入bean
- 可以确定对象及其属性不为null
- 也可以确定将对象交给客户时是完整构建状态
-
使用setter构造一个对象时通常需要作很多非空判断
- setter方法使该类的对象能够在以后重新配置或重新注入。