Spring知识点小结

  Spring核心概念

  • Spring的概念:

    Spring是一个轻量级框架,提供了IOC容器,AOP实现,数据访问支持,还有Web集成。它大大简化了Java企业级开发,提供了强大、稳定的功能。

    Spring有两个主要目标:一是让现有技术更易于使用,二是促进良好的编码习惯。

  • Spring Ioc

控制反转,也被称为依赖注入,它将组件对象的控制权从代码本身,转移到外部容器,用来降低程序代码之间的耦合度。

组件化的思想:分离关注点,接口和实现分离。

  • Spring AOP

面向切面编程,是对面向对象编程的有益补充。Aop一般适用于具有横切逻辑的场合,如访问控制、事务管理、性能检测等。

原理:从系统中分离出切面,将散布在系统中的公共功能独立于业务逻辑集中解决,运行时,织入代码。

好处,可以让程序员专心做事。

 

Ioc Aop 使用扩展

  •   多种方式实现依赖注入

    • 设值注入

      使用Spring通过setter访问器实现了对属性的赋值,这种做法称为设值注入。

      使用灵活,但时效性不足,并且大量的setter访问器增加了类的复杂性。

  • 构造注入

    创建需要注入属性的构造函数,使用<constructor-arg><ref bean=””/></constructor-arg>注入。

    时效性好,但是局限于重载的形式,灵活不足。

  •   使用p命名空间实现属性注入

添加p命名空间,注入属性

<bean id=””   class=”” p:username=”aa” p:dao-ref=”userDao”/>

  •   注入不同数据类型

注入基本值可以用value属性,也可以用<value>标签

注入特殊字符时,可以用<![CDATA[]]>标记,也可以把字符替换成实体引用。

< :&lt;          >:&gt;            &:&amp;

  :&apos;             “ :&quot;

注入null<null/>,z注入空字符串用<value></value>

 

    • 增强类型

      • 前置增强:在方法执行前插入的增强

      • 后置增强:在执行完方法后插入的增强

      • 异常抛出增强:在目标方法抛出异常时织入增强

      • 环绕增强:在目标方法的前后都可以织入增强

    • 使用注解定义增强

        • 在项目中添加相关jar文件

        • 使用注解定义增强

          • 使用@Aspect注解将类定义为切面

          • 使用@Before(“execution(* biz.impl.*.*(..))”)定义前置增强

          • 使用@AfterReturning (“execution(* biz.impl.*.*(..))”)定义后置增强

          • 使用@AfterThrowing (“execution(* biz.impl.*.*(..))”,throwing=”e”)定义异常抛出增强

          • 使用@Around (“execution(* biz.impl.*.*(..))”)定义环绕增强

        • 编写Spring配置文件,织入注解定义的增强

          • 导入aop命名空间添加<aop:aspect-autoproxy/>织入增强

        • 编写代码获取带有增强处理的业务对象

  • 基于Schema配置定义切面

    • 三种定义增强方式:

      使用接口定义增强,使用注解定义增强,使用Spring配置通过aop命名空间声明增强  

  • 配置增强

//声明增强方法所在的Bean

 <bean id="log"class="advice.Schema"></bean>

<!-- 使用Schema配置增强 -->

 <aop:config>

<aop:pointcutexpression="execution(* biz.impl.*.*(..))"id="pointcut"/>

<aop:aspect ref="log">

*************************后置增强********************

<aop:beforemethod="before" pointcut-ref="pointcut"/>

<aop:after-returning method="afterReturning"pointcut-ref="pointcut" returning="returnValue"/>

</aop:aspect>

</aop:config>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值