`
istone
  • 浏览: 63207 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring的Hello World:理解AOP

阅读更多

Spring的通知类型:

  • Around  org.aopalliance.intercept.MethodInterceptor         拦截对目标对象的方法调用
  • Before   org.springframework.aop.BeforeAdvice                 在目标方法被调用之前调用
  • After      org.springframework.aop.AfterReturningAdvice    在目标方法被调用之后调用
  • Throws  org.springframework.aop.ThrowsAdvice               当目标方法抛出异常时调用

 

    切面Advice:

package advice;

import java.lang.reflect.Method;

import org.apache.log4j.Logger;
import org.springframework.aop.MethodBeforeAdvice;

import service.HelloService;
import service.HelloServiceImpl;


public class HelloAdvice implements MethodBeforeAdvice {

	public void before(Method method, Object[] args, Object target) throws Throwable {
		HelloService hello = (HelloServiceImpl)target;
		
		Logger log = Logger.getLogger(target.getClass());
		log.debug("Before Class:" + hello.getClass().getName() + "'s " + method.getName());
	}
}

 

Spring配置文档:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

	<bean id="helloDao" class="dao.HelloDaoImpl">
		<property name="helloworld" value="Hello World!" />
	</bean>
	
	<bean id="helloTarget" class="service.HelloServiceImpl">
		<property name="helloDao" ref="helloDao" />
	</bean>

	<bean id="helloAdvice" class="advice.HelloAdvice" />
	
	<bean id="helloService" class="org.springframework.aop.framework.ProxyFactoryBean">
		<property name="proxyInterfaces">
			<list>
				<value>service.HelloService</value>
			</list>
		</property>
		<property name="interceptorNames">
			<list>
				<value>helloAdvice</value>
			</list>
		</property>
		<property name="target" ref="helloTarget"/>
	</bean>
</beans>

 

输出结果
2009-07-11 17:22:35,625 DEBUG [HelloAdvice.java:18] : Before Class:service.HelloServiceImpl's print
Hello World!
factory

 

注:将spring.jar、junit.jar、commons-logging.jar、log4j.jar复制进WEB-INF/lib

分享到:
评论

相关推荐

    Spring的AOP示例DEMO HELLOWORLD

    本示例DEMO "Spring的AOP示例DEMO HELLOWORLD" 将引导我们深入理解Spring AOP的核心概念,并通过一个简单的 HelloWorld 示例来展示其实现过程。 首先,面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性...

    Spring4 HelloWorld

    Spring框架是Java开发中广泛使用的轻量级框架,它以其依赖...学习和理解"Spring4 HelloWorld",不仅能够帮助初学者掌握Spring的基本用法,也为进一步深入学习Spring的其他高级特性,如AOP、MVC、JPA等打下坚实基础。

    Eclipse下Spring示例HelloWorld程序

    在Eclipse这个强大的Java集成开发环境中,创建一个Spring框架的HelloWorld程序是学习Spring入门的典型步骤。这个程序展示了如何在Eclipse中配置Spring环境,编写简单的Bean定义,并通过Spring的IoC(Inversion of ...

    spring helloworld 例子

    本示例“spring helloworld”将引导初学者入门Spring框架,通过一个简单的实例来理解其核心概念。 首先,我们需要了解Spring的基本架构。Spring是一个开放源代码的Java平台,它提供了全面的编程和配置模型,主要...

    利用Spring输出HelloWorld

    本文将深入探讨如何利用Spring框架输出“HelloWorld”,并介绍相关的基础知识。 首先,Spring是一个开源的Java平台,它为创建复杂的、模块化的、松耦合的Java应用程序提供了强大的支持。它的核心特性包括依赖注入...

    spring笔记之helloworld所需要的jar包

    本篇文章将详细讲解在创建一个简单的Spring HelloWorld应用时,需要导入的jar包以及它们在Spring框架中的作用。 首先,我们需要理解Spring的核心组件,即Spring IoC(Inversion of Control)容器。IoC容器是Spring...

    SpringMVC3.1.2 入门级HelloWorld源码

    [INFO] | \- org.springframework:spring-aop:jar:3.1.2.RELEASE:compile [INFO] +- org.springframework:spring-core:jar:3.1.2.RELEASE:compile [INFO] | +- org.springframework:spring-asm:jar:3.1.2.RELEASE:...

    使用Spring3.0框架开发Hello World例子

    接下来,我们使用Spring的XML配置文件来定义`HelloWorld`类的bean。在`Spring3`压缩包中的`applicationContext.xml`文件可以这样编写: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns...

    spring-helloworld:任务2.1.2

    任务"spring-helloworld:任务2.1.2"显然是针对初学者的一个入门教程,旨在帮助他们快速了解Spring框架的核心功能。 首先,我们需要理解Spring框架的核心特性。Spring以其依赖注入(Dependency Injection, DI)和...

    spring helloWorld案例

    "Spring HelloWorld案例"是一个入门级的学习教程,旨在帮助初学者理解和掌握Spring框架的基本概念和工作原理。这个案例将展示如何使用Spring MVC来创建一个简单的HTTP请求处理,并通过ViewResolver返回响应。 首先...

    spring MVC Helloworld

    本篇文章将详细讲解如何在MyEclipse2013环境中创建一个基本的Spring MVC HelloWorld示例,同时也会提供两个文档资源——`MyEclipse2013+SpringMVCHelloWorld.docx`和`SPring Hello World 说明.docx`,以帮助读者深入...

    Spring之HelloWorld

    本篇文章将深入探讨“Spring之HelloWorld”,通过一个简单的示例介绍如何使用Spring框架构建应用程序。首先,我们来看一下Spring的核心概念。 Spring是一个开源的Java平台,它为构建基于Java的企业级应用提供了全面...

    spring hello world

    4. **主程序**:启动应用的地方,通常会使用Spring的`ClassPathXmlApplicationContext`来加载配置文件,初始化Spring容器,并从容器中获取`HelloWorld`实例,调用其方法展示"Hello World"。 5. **Web部署**:如果...

    Helloworld:Java spring2021

    "Helloworld:Java spring2021"这个标题暗示了我们将探讨一个简单的入门示例,它展示了如何使用Java Spring框架进行基本的编程。这个例子可能是为了帮助初学者理解Spring框架的基础,或者是作为一个新项目的基础模板...

    Spring框架入门:Java开发者的第一课.html

    该教程“Spring框架入门:Java开发者...具体来说,教程通过一个简单的Hello World示例,演示了如何使用Spring框架创建和配置一个基础项目,包括如何在`pom.xml`中添加依赖,如何配置Spring应用上下文,如何定义和使用Be

    spring4.0入门案例-helloworld

    在这个"spring4.0入门案例-helloworld"中,我们将学习如何搭建一个基本的Spring环境,并实现一个简单的"Hello, World!"应用。 首先,我们需要理解Spring的核心概念:依赖注入(Dependency Injection,简称DI)。在...

    spring2-aop.pdf

    - **AspectJ 版的 HelloWorld 示例**:通过一个简单的示例来演示如何使用 AspectJ 编写和织入切面。 - **AspectJ 中相关语法**:详细介绍 AspectJ 语言的各种特性和语法,如声明切面、切点表达式等。 - **一个简单的...

    Spring第一个HelloWorld

    总的来说,"Spring第一个HelloWorld"是一个很好的起点,它可以帮助开发者建立对Spring框架的基本认识,为后续学习Spring的AOP(面向切面编程)、事务管理、数据访问、MVC等高级特性打下坚实的基础。

    spring+mybatis的helloworld项目

    在本项目"spring+mybatis的helloworld"中,我们主要关注的是如何使用Spring和MyBatis这两个流行的Java开发框架来构建一个简单的Web应用程序。这个项目以Maven为构建工具,实现了MySQL数据库的插入操作,并利用Log4j...

Global site tag (gtag.js) - Google Analytics