[刘阳Java]_Spring AOP基于XML配置介绍_第9讲

基于注解配置的Spring AOP固然简单,但是这节我们会给大家介绍基于XML配置的AOP是如何应用的。为什么这么说了,因为后面我们还会介绍到Spring对Dao操作的事务管理(基于AOP的XML文件方式来配置事务)

1. 基于XML文件方式来配置Spring的AOP,则我们需要的一些基本元素如下

  • <aop:config.../>,此标签很重要。它是在XML里配置AOP功能的核心标签

    • all aspect and advisor elements must be placed within an <aop:config> element
    • An <aop:config> element can contain pointcut, advisor, and aspect elements
  • 如果要使用<aop:config…/>一定要把AOP中一些俗语和概念搞懂【很重要】

2. 来看一个案例就能很直观地了解到基于XML配置的AOP是如何应用的呢

  • 创建LogAopXML的切面
package com.spring.aop;

import java.util.Date;

public class LogAopXML {

 public void logBefore() {
    System.out.println("==基于XML的AOP前置建议==" + new Date());
 }
}
  • 创建bean-aop-xml.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<aop:config>
    <aop:aspect id="myAspect" ref="logAopXML">
        <aop:pointcut expression="execution(* com.spring.dao.impl.TeacherDaoImpl.*(..))" id="businessService"/>
        <aop:before pointcut-ref="businessService" method="logBefore"></aop:before>
    </aop:aspect>
</aop:config>

<bean id="teacherService" class="com.spring.services.TeacherService">
    <property name="dao" ref="teacherDao"></property>
</bean>
<bean id="teacherDao" class="com.spring.dao.impl.TeacherDaoImpl"></bean>
<bean id="logAopXML" class="com.spring.aop.LogAopXML"></bean>
</beans>

上述代码中

<aop:config>,主要是配置存放切面,切入点,建议
<aop:aspect>,主要是配置切面类,一般需要制定好id,ref这两个属性
<aop:pointcut>,主要配置切入点,描述切入点规则
<aop:before>,主要配置的是前置建议

  • 通过JUnit来进行单元测试
@Test
public void testLogAopXml() {
    ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
    TeacherServicets = (TeacherService)ac.getBean("teacherService");
    ts.insert();
}
时间: 2024-10-03 23:04:14

[刘阳Java]_Spring AOP基于XML配置介绍_第9讲的相关文章

[刘阳Java]_Spring整合Servlet【补充】_第14讲

这篇内容我们给大家介绍一下Spring框架如何整合Servlet.光看表面现象这个问题感觉没有什么太大难度,但是实际在整合过程中不是那么轻松 既然是以补充的方式来介绍,那么我们就直接上一个案例来说明整合实现的步骤 1. 案例要求 通过Spring框架注解方式来打通控制层,业务逻辑层,数据访问层之间的依赖关系 控制层采用Servlet来完成对用户请求与相应的处理 然后在Servlet中通过@Autowired方式来依赖注入业务逻辑层 业务逻辑层也是通过@Autowired方式来依赖注入数据访问层

[刘阳Java]_Spring MVC中ModelAndView的用法_第3讲

通过前面两篇博客我们已经学习到SpringMVC框架快速搭建和@RequestMapping注解的用法,今天我们来介绍一下SpringMVC框架中的ModelAndView.我个人理解对于快速入门SpringMVC可以按照如下思路学习 SpringMVC框架环境快速搭建 @RequestMapping的用法 ModelAndView的用法 整合Spring+SpringMVC+MyBatis 然后在学习SpringMVC框架高级部分

[刘阳Java]_Spring AOP入门_第7讲

AOP技术个人认为是能够完善(改善)面向对象编程OOP.为什么这么说,我们得先从AOP的概念说起,然后通过一段简单的例子加以佐证.这样子大家就可以慢慢地了解AOP 1. AOP概念 AOP为Aspect Oriented Programming的缩写,含义:面向切面的编程. 2. AOP主要作用是什么,为什么要提出AOP概念,AOP技术到底能用到哪些实际的开发场景里面去 AOP技术主要的用做在日志记录,性能统计,安全控制,事务处理,异常处理等等 例如日志功能,日志代码往往横向地散布在所有对象层次

[刘阳Java]_Java技术有哪些学习重点_第1讲

纵观网上有很多非常好的对Java技术的总结,这里我个人谈谈对Java技术学习有哪些重点内容[浮浅之见] ? Java环境搭建? Java基础语法? Java面向对象编程? Java异常? Java IO流? Java 集合框架? Java 多线程编程? Java 网络编程? Java 反射? Java JDBC? Java GUI 如果是零基础入门学习Java的同学们,在Java环境搭建.Java基础语法这两点是为大家建立编程思维的重点.这样后期才能接着学习Java的面向对象,下面我给一个Jav

[刘阳Java]_Spring常用注解介绍_第6讲

Spring的注解是在Spring2.5的版本中引入的,目的简化XML配置.在企业开发过程中使用注解的频率非常高,但是学习注解的前提是大家一定要对Spring基于XML配置要熟悉,这是我个人建议,因为在Spring2.0的版本时候是没有出现注解的使用 1. Spring常用注解如下 @Component @Autowired @Qualifier @Scope @Controller @Service @Repository 2. 使用Spring注解的时候一定关注Spring框架需要加入的包[

[刘阳Java]_Spring相关配置介绍_第5讲

这一节我们介绍一下Spring框架的相关常用配置 Spring依赖注入的两种方式(构造方法注入和setter方式注入) p-namespace方式配置 properties属性文件配置方式 集合对象配置方式 Bean scopes作用域(单例作用域和原生作用域) 1. Spring依赖注入方式 构造方法注入,它相当于在Spring初始化对象的时候调用构造方法将其对象之间的依赖关系给注入到对象中 先在类中定义好依赖对象 再去定义构造方法,通过在构造方法的参数中设置对象的依赖关系 最后在Spring

Spring AOP基于xml配置实例

目录层级: AOP相关的几个类就是com.aop.xmltype这个报下的4个类. ICalculatorxml.java package com.aop.xmltype; /** * 加减乘除接口,用于AOP测试 * * @author Wei * */ public interface ICalculatorxml { /** * 加法 * * @param a * @param b * @return a+b */ public int doAdd(int a, int b); /** *

[刘阳Java]_Spring对Transaction的支持_第12讲

Spring对数据库事务管理是非常优秀,它利用AOP方式来管理数据库操作的事务.优点:主要体现了业务功能设计不会和事务代码耦合.在使用Spring对Transaction支持中建议采用声明式事务管理来完成. 1. Spring对Transaction设计的代码步骤如下(重点关注配置文件编写,我们以JDBC事务管理来给大家进行阐述) 配置数据源 配置事务管理器,DataSourceTransactionManager.这是事务管理器针对管理JDBC事务 通过AOP让service包下所有Bean的

[刘阳Java]_Spring对Dao的支持_第10讲

Spring框架优秀就是在于MVC开发的时候一旦需要对底层的数据库操作,它可以很好的支持JDBC技术,还有现在主流的ORM框架(Hibernate, MyBatis)技术. 重点先介绍Spring对JDBC支持.在Spring对JDBC支持中提供了一个模板JdbcTemplate,此模板封装了对JDBC操作的许多方法,且消除了忽视资源释放而引起的漏洞 1. Spring对JDBC操作需要导入的jar(开发环境配置) common-dbcp.jar:提供数据源的第三方包 common-pool.j