`

spring入门实例-aop

阅读更多

 

spring入门实例-aop 

使用interceptor模式实现advice

实例:

配置databaseaop.xml

 

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<description>database aop</description>

	<bean id="logInterceptor" class="com.myspring.aop.LogInterceptor"></bean>
	<bean id="DataBaseSpeaker" class="com.myspring.aop.DataBaseSpeaker"></bean>
	<bean id="OracleInterceptor" class="com.myspring.aop.OracleInterceptor"></bean>
	<bean id="dbproxy" class="org.springframework.aop.framework.ProxyFactoryBean">
		<property name="proxyInterfaces">
			<value>com.myspring.aop.IHello</value>
		</property>
		<property name="target">
			<ref bean="DataBaseSpeaker" />
		</property>
		<property name="interceptorNames">
			<list>
				<value>logInterceptor</value>
				<value>OracleInterceptor</value>
			</list>
		</property>
	</bean>

</beans>

 

 

interactor的监控接口:

 

public interface IHello
{
	public String hello(String name);
	public void morning(String name);
}

 

 接口的实现类:

 

public class DataBaseSpeaker implements IHello
{

	@Override
	public String hello(String name)
	{
		System.out.println("mysql,"+name);
		return name;
	}

	@Override
	public void morning(String name)
	{
		System.out.println("oracle,"+name);
	}
	
	public static void main(String[] args)
	{
		ApplicationContext context = new ClassPathXmlApplicationContext("com/myspring/aop/databaseaop.xml");
		IHello helloProxy = (IHello) context.getBean("dbproxy");
		helloProxy.hello("227");
		helloProxy.morning("momor");
	}
}

 

 

两个interceptor

 

public class LogInterceptor implements MethodInterceptor
{
	private Logger logger = Logger.getLogger(this.getClass().getName());
	@Override
	public Object invoke(MethodInvocation methodInvocation) throws Throwable
	{
		logger.log(Level.INFO, "method stats...");
		System.out.println("ffffffffffffffffff");
		try{
			Object result = methodInvocation.proceed();
			System.out.println(result);
			return result;
		}finally{
			logger.log(Level.INFO, "method ends.."+methodInvocation.getMethod());
			System.out.println("eeeeeeeeeeeeeeeeeee");
		}
	}

}

 public class OracleInterceptor implements MethodInterceptor

{

	@Override
	public Object invoke(MethodInvocation methodInvocation) throws Throwable
	{
		// TODO Auto-generated method stub
		System.out.println("qqqqqqqqqqqqMethodInvocation");
		Object obj = methodInvocation.proceed();
		System.out.println("qqqqqqqqqqqqMethodInvocation");
		return obj;
	}

}
 

public class OracleInterceptor implements MethodInterceptor
{

	@Override
	public Object invoke(MethodInvocation methodInvocation) throws Throwable
	{
		// TODO Auto-generated method stub
		System.out.println("qqqqqqqqqqqqMethodInvocation");
		Object obj = methodInvocation.proceed();
		System.out.println("qqqqqqqqqqqqMethodInvocation");
		return obj;
	}

}
 

测试main:

public static void main(String[] args)
	{
		ApplicationContext context = new ClassPathXmlApplicationContext("com/myspring/aop/databaseaop.xml");
		IHello helloProxy = (IHello) context.getBean("dbproxy");
		helloProxy.hello("227");
		helloProxy.morning("momor");
	}
 

 

 

 

 

分享到:
评论

相关推荐

    spring2-aop入门实例教程

    ### Spring2-AOP入门实例教程知识点详解 #### 一、Spring框架概述 - **轻量级J2EE开发框架**:Spring是一个轻量级的Java应用框架,它为开发复杂的企业级应用提供了一种简化的方法。 - **发展历程**:自2002年发布...

    Spring -Aop入门

    ### Spring AOP 入门详解 #### 一、Spring AOP 概述 Spring AOP (Aspect Oriented Programming) 是一种面向切面编程的技术,在Spring框架中得到了良好的支持。通过这种方式,开发者可以更加灵活地组织代码,使得...

    Spring入门--PPT教程

    本教程旨在引导初学者如何入门Spring框架,通过开发第一个Spring程序,逐步了解Spring的核心概念。 首先,我们要进行Spring设计环境的准备工作。这包括以下步骤: 1. 下载并解压Spring框架的压缩包,例如这里使用...

    spring AOP入门实例

    在这个入门实例中,我们将深入理解Spring AOP如何实现简单日志记录。 首先,AOP的核心概念包括切面(Aspect)、通知(Advice)、连接点(Join Point)、切入点(Pointcut)和织入(Weaving)。切面是AOP中的核心...

    spring入门学习-hello,world

    在"spring入门学习-hello,world"这个主题中,我们将探索如何开始Spring的基本使用。 首先,我们需要理解Spring的核心概念——依赖注入。依赖注入是Spring的核心特性,它允许我们通过容器来管理对象的生命周期和对象...

    AOP入门------------------实例

    **AOP(面向切面编程)入门实例** AOP,全称为Aspect-Oriented Programming,是一种编程范式,旨在减少代码中的重复性,提高代码的模块化和可维护性。在Java开发中,AOP主要应用于日志记录、事务管理、性能监控等横...

    一个Spring的入门实例;一个Struts的入门实例

    以上就是 Spring 和 Struts 的基础概念及入门实例的创建流程。这两个框架各有优势,Spring 更注重模块化和灵活性,而 Struts 则更侧重于 MVC 结构的实现。在实际项目中,两者常被一起使用,形成所谓的“Spring + ...

    spring入门实例

    在这个"spring入门实例"中,我们将探索如何利用Spring和Spring JDBC构建一个简单的登录模块。 首先,我们需要理解Spring框架的基础概念。Spring框架的核心在于IoC(Inversion of Control,控制反转)和DI...

    Spring AOP 入门实例1

    **Spring AOP 入门实例1** 在Java开发中,Spring框架因其强大的功能和灵活性而备受推崇,其中Spring AOP(Aspect Oriented Programming,面向切面编程)是其重要组成部分。AOP允许开发者定义“切面”,这些切面可以...

    spring-mybatis-spring-3.0.1.zip

    Spring框架提供了依赖注入(DI)和面向切面编程(AOP)等特性,使得代码更加松耦合,易于测试和维护。而MyBatis则专注于SQL的编写和执行,避免了传统的JDBC中的大量模板代码,提高了开发效率。两者的整合,可以让...

    Spring AOP 入门实例

    **Spring AOP 入门实例** 在Java编程中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,它允许程序员定义“横切关注点”,如日志、事务管理、性能监控等,然后将这些关注点与核心业务逻辑...

    spring入门实例代码

    总的来说,这个"spring入门实例代码"涵盖了Spring框架的基本用法,包括依赖注入、IoC容器、AOP、Spring MVC以及事务管理。通过学习这些实例,初学者可以快速掌握Spring的核心概念,并能进一步理解和应用到实际项目中...

    springAOP-dome

    在这个名为"springAOP-dome"的实例中,我们将探讨如何利用Spring AOP实现一个简单的日志记录功能,以作为入门学习。 首先,了解AOP的基本概念是必要的。面向切面编程是一种编程范式,旨在解决程序中的横切关注点,...

    Spring AOP @AspectJ 入门实例

    本实例将带你深入理解并实践Spring AOP与@AspectJ的结合使用。 首先,了解AOP的基本概念。面向切面编程是一种编程范式,它允许程序员定义“切面”,即跨越多个对象的行为或责任。这些切面可以包含业务逻辑、日志、...

    spring-framework-1.0-m1.zip

    《Spring Framework 1.0-M1 入门详解》 Spring Framework 1.0-M1 是Spring框架的一个早期里程碑版本,标志着Spring项目正式进入公众视野。这个版本为开发者提供了核心的IoC(Inversion of Control)容器和AOP...

    Spring AOP入门及其实例讲解、下载

    **Spring AOP 入门及其实例讲解** 在软件开发中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种编程范式,它旨在提高代码的可重用性,减少冗余,并将关注点分离。Spring框架是Java开发中的一个流行...

    Spring初步学习入门基础jar包以及commons-logging的jar

    4. **Spring AOP**: `spring-aop-4.3.6.RELEASE.jar`实现了面向切面编程(Aspect-Oriented Programming,AOP),允许开发者定义“方面”——关注点的模块化,如日志、事务管理等。AOP可以在不修改代码的情况下,通过...

    spring-hibernate-structs入门教程

    《Spring-Hibernate-Structs 入门教程》 在当今的Java开发领域,Spring、Hibernate和Struts(Structs)是三个非常重要的框架,它们分别在应用层、持久层和表现层发挥着关键作用。本教程将带领你深入了解这三个框架...

    Spring_02_入门篇_AOP_简单实例

    **Spring AOP 入门篇:面向切面编程的注解与XML模式** 在软件开发中,Spring框架因其强大的功能和灵活性而广受欢迎,尤其是在企业级应用开发中。本教程将深入探讨Spring中的核心概念之一——面向切面编程(Aspect-...

Global site tag (gtag.js) - Google Analytics