`
张玉龙
  • 浏览: 727249 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Spring的AOP和spring对Jdbc的支持[转]

阅读更多
1.spring的AOP
AOP(Aspect-Oriented Programming, 面向切面编程):利用的是动态代理技术.
好处:
每个事物逻辑位于一个位置, 代码不分散, 便于维护和升级业务模块更简洁, 只包含核心业务代码.

2.在AOP中经常用的到术语:
切面(Aspect):  横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象
通知(Advice):  切面必须要完成的工作
目标(Target): 被通知的对象
代理(Proxy): 向目标对象应用通知之后创建的对象
切入点(PointCut): 切面通知执行的”地点”的定义
连接点(Jointpoint): 与切入点匹配的执行点

AspectJ: Java 社区里最完整最流行的 AOP 框架.

3.在 Spring 中启用 AspectJ 注解支持
    
    包:lib\aspectj\aspectjrt.jar 和 aspectjweaver.jar
    XML:<aop:aspectj-autoproxy>
    java:在类前@Aspect
    方法前:
        @Before: 前置通知, 在方法执行之前执行
        
        @After: 后置通知, 在方法执行之后执行
        
        @AfterRunning: 返回通知, 在方法返回结果之后执行
            将  returning="result" 属性添加到 @AfterReturning 注解中.在方法中使用 result 就可以直接得到.
        
        @AfterThrowing: 异常通知, 在方法抛出异常之后
            将 throwing 属性添加到 @AfterThrowing 注解中
            
        @Around: 环绕通知, 围绕着方法执行
            连接点的参数类型必须是 ProceedingJoinPoint
            ProceedingJoinPoint 的 proceed() 方法来执行被代理的方法
    
    切入点定义:  @Pointcut 一个空的方法前声明,引用时写这个方法的方法名加括号.
        可以用 && || ! 合并切入点
        切入点表达式:execution(* ArithmeticCalculator.add(int, ..)) || execution(* ArithmeticCalculator.mul(int, ..)
    
    在方法中声明 JoinPoint :
        得到方法名joinpoint.getSignature().getName();
        输出参数:Arrays.asList(joinpoint.getArgs())

    指定切面的优先级: @Order(2) 值越小,优先级越高.

4.引入通知
@DeclareParents
注解类型的 value 属性表示哪些类是当前引入通知的目标. value 属性值也可以是一个 AspectJ 类型的表达式, 以将一个即可引入到多个类中.  defaultImpl 属性中指定这个接口使用的实现类

5.使用XML方式进行配置
基于注解的声明要优先于基于 XML 的声明.
    <aop:config>
        横切性关注点
        <aop:pointcut expression="execution(* cn.itcast.spring.aop.xml.*.*(..))" id="pointcut"/>
        
        AOP 的切面信息都要配置在这个里面
        <aop:aspect ref="LogginAspect">
            前置通知
            <aop:before method="beforeLog" pointcut-ref="pointcut"/>
            后置通知
            <aop:after method="afterLog" pointcut-ref="pointcut"/>
            返回通知
            <aop:after-returning method="afterReturningLog" pointcut-ref="pointcut" returning="result"/>
            异常通知
            <aop:after-throwing method="afterThrowingLog" pointcut-ref="pointcut" throwing="e"/>
            环绕通知
            <aop:around method="aroundLog" pointcut="execution(* cn.itcast.spring.aop.xml.ArithmeticCalculatorImpl.mul(..))"/>
        </aop:aspect>
        
    </aop:config>


6.spring 对JDBC的支持
    JdbcTemplate 类被设计成为线程安全的
    JdbcTemplate 只有 setter 方法, SimpleJdbcTemplate 只有构造方法.所以要注意注入 dataSource 的方式.    
    JdbcTemplate 的注入,使用的是 org.springframework.jdbc.core.JdbcTemplate . 并且要使用 setter 方式注入
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    SimpleJdbcTemplate 的注入,使用的 org.springframework.jdbc.core.simple.SimpleJdbcTemplate 类, 并且要使用构造方法注入.
    从 JdbcTemplate 演变而来, 它利用 Java 1.5 的特性(自动装箱, 泛型, 可变长度等)来简化开发    
    <bean id="simpleJdbcTemplate"
        class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
        <constructor-arg ref="dataSource"/>
    </bean>
分享到:
评论

相关推荐

    spring aop依赖jar包

    现在,我们回到主题——"springaop依赖的jar包"。在Spring 2.5.6版本中,使用Spring AOP通常需要以下核心jar包: - `spring-aop.jar`:这是Spring AOP的核心库,包含了AOP相关的类和接口。 - `spring-beans.jar`:...

    Spring aop、jdbc和事务tx练习

    通过这些练习,你可以深入理解Spring如何整合AOP、JDBC和事务管理,并提升你的实际开发技能。在实践中,你可能会遇到的问题包括事务传播行为、异常回滚规则、事务隔离级别等,这些都是进一步学习和研究的方向。

    spring对jdbc的支持jar包

    在实际使用中,Spring JDBC通常与Spring的其他模块结合,如Spring ORM(Object-Relational Mapping)和Spring AOP(Aspect-Oriented Programming),以提供更完整的数据访问解决方案。例如,Hibernate或MyBatis可以...

    使用SpringAop使用Oracle数据权限控制

    本篇将深入探讨如何结合Spring AOP和Oracle数据库来实现精细化的数据权限控制。 首先,我们需要理解Spring AOP的基本概念。AOP允许程序员定义“切面”,这些切面可以包含业务逻辑的多个方面,如方法调用前后的拦截...

    spring连接数据库aop-jdbc

    Spring JDBC对JDBC抛出的异常进行了封装,转换为更有意义的Spring DataAccessException子类,使开发者更容易理解和处理数据库操作的错误。 10. **测试支持**: Spring 提供了`SqlUtils`和`TestUtils`等工具类,...

    Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

    这个简单的登录注册系统展示了Spring框架的强大功能,以及如何与其他技术如Spring MVC、Spring JDBC和MySQL协同工作,为开发者提供了一个完整的后端解决方案。通过深入理解并实践这些知识点,开发者能够构建更复杂的...

    Spring mvc + Spring + Spring jdbc 整合实例源码

    通过Spring MVC处理HTTP请求,Spring核心模块提供依赖管理和AOP支持,Spring JDBC则简化了数据库操作。这样的架构使得应用更易于扩展和维护,同时也提高了开发效率。在实际项目中,我们可以通过阅读提供的源码,深入...

    Spring mvc、 Spring、 Spring jdbc 整合 demo

    Spring JDBC还支持数据源管理,事务管理,异常转换等功能,使得数据库操作更加安全和便捷。 4. **整合过程** 将这三个模块整合在一起,通常会涉及到以下步骤: - 配置Spring MVC的DispatcherServlet,定义处理器...

    Spring mvc + Spring + Spring jdbc 整合 demo

    在本项目中,我们主要探讨的是如何将Spring MVC、Spring框架和Spring JDBC这三大核心组件进行整合,构建一个完整的Java Web应用程序。这个整合Demo旨在帮助开发者理解这些技术的协同工作方式,以及如何在实际开发中...

    spring-aop.rar_java aop_spring aop

    【描述】"SPRING AOP自主实现,还包括一些java基础,可以很快自主实现切面编程" 提示我们,此资源旨在帮助开发者了解如何自定义实现Spring的AOP功能,并且提供了Java基础的学习材料,以加速对切面编程的理解和实践。...

    Spring+AOP全套jar包

    在实际开发中,为了使用Spring+AOP,还需要一些额外的库,例如Spring JDBC和Spring ORM,它们提供了对数据库操作的支持,能够与各种ORM框架(如Hibernate、MyBatis等)集成,实现数据持久化。 压缩包中的“lib (1)...

    Spring mvc、 Spring、 Spring jdbc 整合实例源码

    Spring MVC、Spring和Spring JDBC是Java开发中非常重要的三大框架,它们构成了Spring框架的核心部分,广泛应用于企业级应用开发。本实例源码旨在提供一个整合这三者的基础模板,帮助开发者理解和掌握它们之间的协同...

    spring aop使用教程

    Spring AOP 的实现主要有两种方式:基于代理的 AOP 和基于注解的 AOP。 1. 基于代理的 AOP:在基于代理的 AOP 中,Spring 使用 JDK 的动态代理或 CGLIB 代理来实现 AOP。代理类将实现业务逻辑的接口,并在执行业务...

    spring4 、 springmvc4.2、springjdbc

    Spring框架是Java开发中广泛应用的一个开源框架,它主要由Spring Core、Spring MVC和Spring JDBC等模块组成。在本文中,我们将深入探讨这三个核心模块以及它们的功能和整合方式。 首先,Spring Core是整个Spring...

    spring-nested-aop.zip_aop_spring aop

    Spring AOP通过代理模式实现,允许我们在不修改源代码的情况下,对方法执行前后进行增强。 在这个名为"spring-nested-aop.zip"的压缩包中,包含了一个关于Spring AOP的嵌套事务处理的示例程序。这通常涉及到在一个...

    spring jdbc相关包版本5.1.3

    Spring JDBC模块是Spring框架的一部分,它提供了对JDBC(Java Database Connectivity)的高级抽象,简化了数据库操作。在这个场景中,我们关注的是Spring JDBC的5.1.3版本。 **Spring JDBC 5.1.3 版本详解** ...

    java开发之SpringMVC + Spring + SpringJDBC整合.zip

    此外,SpringJDBC还支持事务管理,可以方便地进行回滚和提交操作,确保数据一致性。 在整合这三个组件时,我们需要以下步骤: 1. 配置SpringMVC:在web.xml中配置DispatcherServlet,设置servlet-context.xml作为...

    spring-jdbc jar包.rar

    "spring-jdbc jar包"包含了Spring框架中与JDBC相关的所有类和接口,为开发者提供了强大的数据访问支持。 首先,我们来看看Spring JDBC的核心组件: 1. **JdbcTemplate**:这是Spring JDBC的核心类,它通过模板方法...

    spring.jar spring-agent.jar spring-aop.jar spring-beans.jar spring-hibernate3.jar spring-jdbc.jar spring-struts.jar spring-web.jar

    spring.jar spring-aop.jar spring-aop.jar spring-beans.jar spring-hibernate3.jar spring-jdbc.jar spring-struts.jar spring-web.jar

    spring jdbc.zip

    《Spring JDBC:Spring框架对JDBC的封装与实践》 Spring框架是Java开发中的一个核心组件,它极大地简化了企业级应用的开发工作。在Spring框架中,Spring JDBC(Java Database Connectivity)模块扮演着重要的角色,...

Global site tag (gtag.js) - Google Analytics