Spring知识点

一、IoC/DI(控制反转/依赖注入)

      目的:基于MVC分层模式的开发是基于责任链机制的,导致对象间耦合性过高,不利于后期系统的维护升级。需要使用IoC来解除责任链上对象之间的耦合。
      控制:控制类的对象
      反转:本来由程序员完成的创建对象的工作现在交由Spring IoC来完成。
      xml校验工具:dtd的升级版——Schema,优点是具有扩展性
      Spring IoC创建对象的三种方式:
          1.使用构造方法创建
                    无参构造
                    有参构造
           2. 静态工厂
           3. 实例工厂
     工厂的作用:实现创建者和调用者的分离。
     给bean赋值(注入)的方法:
          1. 构造方法
          2. setter/getter
      依赖注入:当一个类A需要依赖类B时,将B的实例化对象注入给A的过程。
      注入:赋值

二、AoP(面向切面编程)

  原理:动态代理(JDK动态代理和CGLIB动态代理)
  目的:在不修改原有代码的基础上实现扩展。
  主要概念:
         切点、前置通知、后置通知、环绕通知、异常通知、织入
  实现:
       1.基于Schema-Base方式
            特点:需要实现接口
       2. 基于AspectJ方式
       3. 使用注解(AspectJ)
  Spring和MyBatis的整合
   Scope属性:选择单例模式还是原型模式创建对象
   开启自动注入 auto-wire

三、声明式事务(tx)

           基于AoP
           步骤:
                 配置数据源

                 配置事务管理Bean,
<bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
                 配置事务管理方法,
 <tx:advice id="myadvice" transaction-manager="dataSourceTransactionManager">
    <tx:attributes>
        <!--缩小选定方法的范围-->
        <tx:method name="sel*"/>
        <tx:method name="del*"/>
        <tx:method name="upd*"/>
        <tx:method name="ins*"/>

    </tx:attributes>
    </tx:advice>
                 配置切面
   <aop:config>
        <aop:pointcut id="my" expression="execution(* com.bjsxt.service.*.*(..))"/>
        <aop:advisor advice-ref="myadvice" pointcut-ref="my"/>
    </aop:config>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值