作用:配置javaBean,让spring容器创建管理.默认调用类中无参数的构造方法创建对象.
bean的属性
属性 | 说明 |
id | 唯一标识切面的名称(map的key,必须保持唯一,用于获取对象) |
class | 全类名,是map的value,用于通过反射创建对象 |
scope | 设置bean的作用范围 取值: sigleton:单例.默认值 prototype:多例. request:web项目中,将对象存入request域中. session:web项目中,将对象存入session域中. globalssession:web项目中,应用在集群环境,如果没有集群环境,相当于session. |
init-method | 指定类中初始化方法的名称,在构造方法执行完毕后立即执行. |
destroy-method | 指定类中销毁方法的名称,在销毁spring容器前执行. |
factory-method | 指定实例工厂方法 |
factory-bean | 指定实例工厂对象 |
<bean id="userService" class="com.by.service.UserServiceImpl" scope="prototype" init-method="init" destroy-method="destroy">
作用:通过构造方法给成员变量赋值
属性 | 说明 |
index | 指定成员变量在构造方法参数列表中的索引 |
name | 指定成员变量在构造方法参数列表中的名称 |
type | 指定成员变量的类型 |
value | 给java简单类型成员变量赋值(八种基本数据类型+字符串) |
ref | bean标签的id,注入的是ioc容器中的bean对象 |
<!--
构造方法注入:要求必须提供构造方法
==给谁赋值:==
name="userDao":构造方法中的参数名称
index="0":构造方法中的索引位置
==赋什么值:==
ref="userDao":bean标签的id,注入的是ioc容器中的bean对象
value="你好":注入的是基本数据类型和String类型
-->
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
<constructor-arg name="msg" value="你好"></constructor-arg>
作用: 通过set方法给成员变量赋值
属性 | 说明 |
name | 指定成员变量的名称 |
value | 给java简单类型成员变量赋值(八种基本数据类型+字符串) |
ref | bean标签的id,注入的是ioc容器中的bean对象 |
<!--
set方法注入:要求必须提供set方法
==给谁赋值:==
name="userDao":pojo的属性名,userDao====>setUserDao
==赋什么值:==
ref="userDao":bean标签的id,注入的是ioc容器中的bean对象
value="我靠":注入的是基本数据类型和String类型
-->
<property name="userDao" ref="userDao"></property>
<property name="msg" value="set注入"></property>
作用: 声明aop配置
作用: 配置切面
属性 | 说明 |
id | 唯一标识切面的名称(map的key,必须保持唯一,用于获取对象) |
ref | bean标签的id,注入的是ioc容器中的bean对象 |
作用: 配置切入点表达式
属性 | 说明 |
id | 唯一标识切入点表达式名称 |
expression | 定义切入点表达式 |
<!-- 切点表达式-->
<!-- 表达式语法:-->
<!-- execution([修饰符] 返回值类型 包名.类名.方法名(参数))-->
<aop:pointcut id="pointcut" expression="execution(* com.by.service.*.*(..))"/>
作用: 配置前置通知
属性 | 说明 |
method | 指定通知方法名称 |
pointcut | 定义切入点表达式 |
pointcut-ref | 引用切入点表达式的id |
作用: 配置后置通知
属性 | 说明 |
method | 指定通知方法名称 |
pointcut | 定义切入点表达式 |
pointcut-ref | 引用切入点表达式的id |
作用: 配置异常通知
属性 | 说明 |
method | 指定通知方法名称 |
pointcut | 定义切入点表达式 |
pointcut-ref | 引用切入点表达式的id |
aop:after
作用: 配置最终通知
属性 | 说明 |
method | 指定通知方法名称 |
pointcut | 定义切入点表达式 |
pointcut-ref | 引用切入点表达式的id |
作用: 配置环绕通知
属性 | 说明 |
method | 指定通知方法名称 |
pointcut | 定义切入点表达式 |
pointcut-ref | 引用切入点表达式的id |
<!--增强(advice)-->
<bean id="MyLogAdvice" class="com.by.advice.MyLogAdvice"></bean>
<aop:config>
<!--切点(pointcut)-->
<!-- 切点表达式-->
<!-- 表达式语法:-->
<!-- execution([修饰符] 返回值类型 包名.类名.方法名(参数))-->
<aop:pointcut id="pointcut" expression="execution(* com.by.service.*.*(..))"/>
<!--切面(aspect):把增强应用到切点上-->
<aop:aspect ref="MyLogAdvice">
<!-- <aop:around method="around" pointcut-ref="pointcut"></aop:around>-->
<aop:before method="before" pointcut-ref="pointcut"></aop:before>
<aop:after method="after" pointcut-ref="pointcut"></aop:after>
<aop:after-throwing method="afterThrowing" pointcut-ref="pointcut"></aop:after-throwing>
<aop:after-returning method="afterReturning" pointcut-ref="pointcut"></aop:after-returning>
</aop:aspect>
</aop:config>