Spring学习笔记

一、IoC --> 基于注解的DI实现

@Component
        定义Bean,value用于指定该bean的id值
        不指定value属性,bean的id是类名的首字母小写
@Repository
        持久层
        用于对DaO实现类进行注解
@Service
        业务层
        用于对Service实现了进行注解
@Controller
        控制层
        用于对Controller实现类进行注解

@Value
        简单类型属性注入
@Autowired
        byType自动注入
@Autowired & @Qualifier
        byName自动注入,需要两个注解联合使用
@Resource
        JDK注解,可以按名称注入或按类型注入
        默认:按名称注入
        注解若不带任何参数,采用默认按名称的方式注入,按名称不能注入 bean, 则会按照类型进
        行 Bean 的匹配注入。
        指定其 name 属性,则 name 的值即为按照名称进行匹配的 Bean 的 id。

二、AOP

JDK 的动态代理,与 CGLIB 的动态代理。
Aspect:切面
JoinPoint:连接点
Pointcut:切入点
Target:目标对象
Advice:通知

AspectJ对AOP的实现
        切入点表达式:

execution(modifiers-pattern? ret-type-pattern
    declaring-type-pattern?name-pattern(param-pattern)
    throws-pattern?)


前置通知
后置通知
环绕通知
异常通知
最终通知

        application.xml中需添加
        <aop:aspectj-autoproxy/>
        通知 Spring 容器,让容器生成“目标类+ 切面”的代理对象。这个代理是由容器自动生成的。自动扫描到@Aspect 注解,并按通知类型与切入点,将其织入,并生成代理。
@Aspect
        表示当前类是切面类
@Before
        前置通知
        属性:value 切入点表达式,表示切面执行的位置
        位置:方法的定义上面
        方法有JoinPoint参数,通过该参数,可获取切入点表达式、方法签名、 目标对象等。
@AfterReturning
        后置通知
        注解有returning属性
@Around
        环绕通知
        方法有ProceedingJoinPoint
@AfterThrowing
        异常通知
        注解有throwing属性
@After

        最终通知
@Pointcut
        定义切入点
        将@Pointcut注解在一个方法之上,以后所有的 execution的 value 属性值均可使用该方法名作为切入点。代表的就是@Pointcut 定义的切入点。这个使用@Pointcut 注解的方法一般使用 private 的标识方法,即没有实际作用的方法。

三、Srping集成MyBatis

<context:property-placeholder location="classpath:"/>
        Spring读取配置文件
<tx:annotation-driven transaction-manager=""/>
        声明事物注解驱动
        业务层public方法加入事物属性

@Transactional(
    propagation = Propagation.REQUIRED,
    rollbackFor = { NotEnoughException.class,NullPointerException.class})


AspectJ的AOP配置管理事务
        容器中添加事务管理器
        DataSourceTransactionManager
        配置事务通知

<tx:advice id="myAdvice" transaction-manager="">
    <tx:attributes>
    ......
    </tx:attributes>
</tx:advice>


        配置增强器

<aop:config>
    <aop: id="myServictPt" pintcut expression="切入点表达式"/>
    <aop:advisor advice-ref="myAdvice" pointcut-ref="myServictPt"/>
</aop:config>



    
       

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Famiglistimott

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

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

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

打赏作者

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

抵扣说明:

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

余额充值