spring学习笔记

Bean相关

使用构造函数注入

<constructor-arg value="基本参数值" />

<constructor-arg ref="其他bean的id" />

Bean的生存范围

 
 

singleton(默认)

 
 
 

 

 
 
 

prototype

 
 
 

每次使用new一个实例

 
 
 

request

 
 
 

HTTP request范围

 
 
 

session

 
 
 

HTTP  session

 
 
 

global-session

 
 
 

global  HTTP session

 

初始化和销毁bean时的附加操作方法

init-method="方法名"

destroy-method="方法名"

这两个属性也可加在beans标签中表示内部所有bean在启动和销毁时都会执行这些方法

使用setter注入bean的属性

<property name="属性名称"  value="属性值" / >

注入时spring能对属性值根据属性变量类型做自动类型转换

装配引用其他bean

<property name="..."ref="其他bean的id"/>

注入inner beans

将inner bean写在property或constructor-arg内,不需要id

使用spring的p名字空间装配bean

p:属性名 = "属性值"

p:属性名-ref = "其他beanid"

 

装配集合类

spring支持四种标签

 
 

<list>

 
 
 

允许重复

 
 
 

<set>

 
 
 

保证不重复

 
 
 

<map>

 
 
 

键值可以是任何类型

 
 
 

<props>

 
 
 

键值必须是String

 

list

<property name="...">

<list>

<ref bean=".."/>

<ref bean=".."/>

...

list

<property name="...">

<set>

<ref bean=".."/>

<ref bean=".."/>

...

map

<property name="...">

<map>

<entry key=".." value-ref=".."/>

<entry key=".." value-ref=".."/>

...

key, key-ref, value, value-ref的区别

prop

<property name="...">

<props>

<prop key="..">.....</prop>

<prop key="..">.....</prop>

...

不装配任何(null)

<prop key=".."><null/></prop>

 

用表达式(SpEL)做关联

<property name="..."value="....#{ 表达式 }....."/>

字面量

#{5}, #{45.20}, #{1e4},  #{true}等

装配其他bean

value="#{其他beanid}"相当于 ref="其他beanid"

装配其他bean的属性,或方法

value="#{beanid.beanattribute}"

value="#{beanid.beanattribute.beanmethod()}"

防止beanattribute是null而包NullPointerException的方法

value="#{beanid.beanattribute?.beanmethod()}"

T(类完全名)表示这个类,例如访问Math常量或静态方法:

value="#{T(java.lang.Math).PI}"

value="#{T(java.lang.Math).random()}"

 

SpEL的运算符

比较特殊的几个:

关系lt, gt, eq, le, ge

逻辑and, or, not, |

正则matches

<util:list>标签来源于spring的util名字空间,表示创建java.util.List对象

[]可以访问集合成员,如

value="#{cities[2]}"

value="#{cities['Dallas']}"

获得环境变量

value="#{systemProperties['application.home']}"

条件选择集合类,例如选择人口属性大于100000的城市

value="#{cities.?[population gt 100000]}"

 
 

.^[]

 
 
 

选择第一个元素

 
 
 

.$[]

 
 
 

选择最后一个元素

 
 
 

.![x]

 
 
 

只返回集合中的所有x属性(也是作为集合返回)

 

 

自动装配的四种类型:

通过名称,通过类型,通过构造器,自动探测

bean标签的primary属性,autowire-candidate属性,default-autowire属性

在java代码中使用注释定义自动装配

<context:annotation-config />

使用Spring的基于java的配置

 

面向切面的Spring

Spring支持5种advice,所谓advice就是aspects的目的,advice穿插在程序运行的一系列joint-point中执行,即所谓aspects-oriented-programming

 
 

before

 
 
 

被adviced的方法执行前

 
 
 

after

 
 
 

被adviced的方法执行后,不管成功与否

 
 
 

after-returning

 
 
 

被adviced的方法成功完成后执行

 
 
 

after-throwing

 
 
 

被adviced的方法抛出异常时执行

 
 
 

around

 
 
 

 

 

Spring的AOP支持

spring的advice是用java写的

spring只支持方法级别的joint points

spring的AOP配置标签

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值