标签:
1、构造器注入:
<bean id="test" class="...">
<constructor-arg value="13"/>
<constructor-arg ref="(某个bean的id)">
</bean>
2、为了让spring每次请求时都为Bean创建一个新的实例,只需配置bean的scope属性为prototype
<bean id="test" class="..." scope="prototype"/>
ps:默认为singleton
3、默认给整个xml的bean都配上init-method和destory-method只需要将<beans>元素的default-init-method和default-destory-method设置上同样的方法
1 <beans xmlns="http://www.springframework.org/schema/beans" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" 6 7 default-init-method="methodName" 8 9 default-destory-method="methodName" 10 11 > 12 13 </beans>
4、
<bean id="test" class="...">
<property name="song" value="str...">
</bean>
给bean的属性设值得时候,spring会调用setSong()方法将song的值设为str...,所以不要忘了实现set方法
5、spring装配集合类
<list>和<set>的区别的是list允许重复值,set不允许重复值,所以只要集合List不含重复值,也是可以放入<set>的
<map>和<props>的区别是map的key和value可以任意类型,而props的key,value必须是String型
6、命名空间p
<property name="song" value="str...">可以用p:song="str..."代替
<property name="song" ref="str...">可以用p:song-ref="str..."代替
7、当我们不能确定属性的值是否为空,可以显式的为该值装配一个null值
<property name="song"><null/></property>
8、使用SpEL表达式装配
<bean id="test" class="...">
<property name="song" value="#{kenny.song}">
</bean>
kenny为bean的id,song为kenny的属性
它不止可以取得属性,还可以取得方法,甚至一定的变化
<bean id="test" class="...">
<property name="song" value="#{kenny.selectSong().toUpperCase()}">
</bean>
获得方法返回值,并都转大写
为了防止方法返回值为空,可以将.改为?.
<bean id="test" class="...">
<property name="song" value="#{kenny.selectSong()?.toUpperCase()}">
</bean>
表达式还可以用来操作类,调用作用域的方法和常量(静态)
<bean id="test" class="...">
<property name="song" value="#{T(java.lang.Math).PI}">
</bean>
或者
<bean id="test" class="...">
<property name="song" value="#{T(java.lang.Math).random()}">
</bean>
SpEL的数值运算
可以进行数值运算,+-*/,而一些符号由于和xml文件冲突,需要更换,==用eq,<用lt,<=用le,>用gt,>=用ge
如:
<bean id="test" class="...">
<property name="isSuccess" value="#{counter.total le 10000}">
</bean>
逻辑表达式
and or not或!
条件表达式
可以用?:三目运算
正则表达式
<bean id="test" class="...">
<property name="email" value="#{admin.email matches ‘[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.com‘}">
</bean>
标签:
原文地址:http://www.cnblogs.com/future-tzxylao/p/5427558.html