Spring的标签及标签的属性说明

本文详细介绍了如何使用Spring框架配置JavaBean,包括bean的属性设定、不同作用域的使用,以及如何通过构造方法和set方法进行依赖注入。此外,还探讨了AOP(面向切面编程)在Spring中的应用,如切点、通知及其配置示例。
摘要由CSDN通过智能技术生成

bean

作用:配置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">

constructor-arg

作用:通过构造方法给成员变量赋值

属性说明
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>

property 

作用: 通过set方法给成员变量赋值

属性说明
name指定成员变量的名称
value给java简单类型成员变量赋值(八种基本数据类型+字符串)
refbean标签的id,注入的是ioc容器中的bean对象
<!--
            set方法注入:要求必须提供set方法
                ==给谁赋值:==
                name="userDao":pojo的属性名,userDao====>setUserDao
                ==赋什么值:==
                   ref="userDao":bean标签的id,注入的是ioc容器中的bean对象
                   value="set注入":注入的是基本数据类型和String类型
         -->        
<property name="userDao" ref="userDao"></property>
<property name="msg" value="set注入"></property>

aop:config 

作用: 声明aop配置

aop:aspect

作用: 配置切面

属性说明
id唯一标识切面的名称(map的key,必须保持唯一,用于获取对象)
refbean标签的id,注入的是ioc容器中的bean对象

aop:pointcut 

作用: 配置切入点表达式

属性说明
id唯一标识切入点表达式名称
expression定义切入点表达式
<!--        切点表达式-->
<!--        表达式语法:-->
<!--        execution([修饰符] 返回值类型 包名.类名.方法名(参数))-->
        <aop:pointcut id="pointcut" expression="execution(* com.by.service.*.*(..))"/>

aop:before 

作用: 配置前置通知

属性说明
method指定通知方法名称
pointcut定义切入点表达式
pointcut-ref引用切入点表达式的id

aop:after-returning

作用: 配置后置通知

属性说明
method指定通知方法名称
pointcut定义切入点表达式
pointcut-ref引用切入点表达式的id

aop:after-throwing

作用: 配置异常通知

属性说明
method指定通知方法名称
pointcut定义切入点表达式
pointcut-ref引用切入点表达式的id

aop:after

作用: 配置最终通知

属性说明
method指定通知方法名称
pointcut定义切入点表达式
pointcut-ref引用切入点表达式的id

aop:around

作用: 配置环绕通知

属性说明
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>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰冰很社恐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值