一。配置服务类组件
@Component
public class UserService {
private UserDAO userDAO;
public void add(User u){
this.userDAO.save(u);
}
public UserDAO getUserDAO() {
return userDAO;
}
@Resource(name="userDAOImpl")
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
}
@Resource自动装配
二。配置applicationContext.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 配置自动装配 AutowiredAnnotationBeanPostProcessor等接口,实现注入等功能 -->
<context:annotation-config/>
<!-- 配置扫描包路径 -->
<context:component-scan base-package="com.job"/>
<!-- 配置aop自动代理 -->
<aop:aspectj-autoproxy/>
</beans>
三。编写切面类
@Aspect
@Component
public class LogInteceptor {
@Before("execution(public void com.job.dao.UserDAOImpl.save(com.job.model.User))")
public void beforeMethod(){
System.out.println("Method start!");
}
@Pointcut("execution (public * com.job.dao..*.save(..))")
public void method(){
};
@Before("method()")
public void beforeMethod(){
System.out.println("Method start!");
}
@Around("method()")
public void around(ProceedingJoinPoint pjp) throws Throwable{
System.out.println("around before!");
pjp.proceed();
System.out.println("around after");
}
}
注:首先一定要注册为组件@Component
其次注册为切面
@Before("execution(public void com.job.dao.UserDAOImpl.save(com.job.model.User))")
@Before表示调用方法前执行。
execution(public void com.job.dao.UserDAOImpl.save(com.job.model.User))表示执行特定的类名.方法名方法
"execution (public * com.job.dao..*.save(..))"
..表示包含子包
*表示任何类
四。测试
public class UserServiceTest {
@Test
public void test(){
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService service = (UserService)ac.getBean("userService");
User u = new User();
u.setUsername("me haha ");
service.add(u);
}
}
五。测试结果
Method start!
me haha ---haha!
分享到:
相关推荐
2. ch20_aop_annotation:这部分内容可能是关于使用注解来定义和实现切面的教程。 3. ch18_aoptest:可能是一些AOP的测试案例,用于演示如何在实际应用中使用和测试AOP功能。 4. ch18_aop:可能是关于AOP基础理论或...
本实践项目以"Spring_aop_annotation.zip"为载体,展示了如何利用注解在Spring框架中实现AOP的功能。下面将详细阐述该项目中的关键知识点。 一、Spring AOP概念 AOP是Aspect Oriented Programming的缩写,它是一种...
这篇“学习Spring笔记_AOP_Annotation实现和XML实现”主要探讨了如何在Spring中利用注解和XML配置来实现AOP的概念。 AOP,全称Aspect-Oriented Programming,是一种编程范式,旨在将关注点分离,让开发者可以更专注...
### Spring_Hibernate_JAVAX_Annotation 注解详解 #### 一、概述 本文将详细介绍与SSH(Spring+Struts+Hibernate)开发相关的注解。这些注解覆盖了多个领域,如AspectJ、Batch处理、Spring框架本身的功能(包括...
标题中的"Spring_1200_IOC_Annotation_Component"表明我们即将探讨的是关于Spring框架的IoC(Inversion of Control,控制反转)和基于注解的组件管理。在这个主题下,我们将深入理解Spring如何通过注解来实现依赖...
Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的对象关系映射(ORM)工具,简化了Java应用程序对数据库的操作。当结合使用时,...
在Java Web开发中,Spring AOP(面向切面编程)是一种强大的工具,它允许开发者将关注点分离,提高代码的可重用性和可维护性。本文将深入探讨Spring AOP的核心概念、工作原理以及如何在实际项目中应用。 **1. ...
在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理等,并将这些关注点与业务逻辑分离。`@Before`是Spring AOP中一个重要的通知类型,用于在目标方法执行前执行...
**Spring AOP 入门篇:面向切面编程的注解与XML模式** 在软件开发中,Spring框架因其强大的功能和灵活性而广受欢迎,尤其是在企业级应用开发中。本教程将深入探讨Spring中的核心概念之一——面向切面编程(Aspect-...
Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的一个重要组成部分。它提供了一种模块化和声明式的方式来处理横切关注点,如事务管理、日志记录、性能监控等,这些关注点通常会分散在...
本篇笔记主要关注Spring中的注解(Annotation)和@Component,这两大概念是Spring框架的重要组成部分,也是理解SpringIoC(控制反转)和AOP(面向切面编程)的基础。 首先,注解(Annotation)是Java提供的一种元...
"day03_eesy_05annotationAOP"着重讲解的是基于注解的AOP。Spring支持使用注解来声明切点(Pointcut)和通知,使得代码更加简洁,减少了XML配置的工作量。@Aspect、@Before、@After、@AfterReturning、@...
本实例将详细探讨如何通过注解(Annotation)来实现Spring AOP的方法拦截。 一、Spring AOP基础 Spring AOP是Spring框架的一部分,它提供了一种在运行时织入横切关注点(如日志、事务管理等)到目标对象的能力。AOP...
标题 "SpringIOC_SpringMVC_SpringAnnotation_JPA" 涵盖了四个核心的Java开发框架技术,它们是Spring框架的重要组成部分。Spring框架是一个全面的企业级应用开发框架,提供了许多功能,包括依赖注入(Dependency ...
在这个"aop_log.rar_spring aop"的压缩包中,我们很显然关注的是如何在Spring AOP中集成日志功能。 首先,理解AOP的核心概念是必不可少的。AOP包括切面(Aspect)、连接点(Join Point)、通知(Advice)、切入点...
在Java开发领域,Spring框架是应用最广泛的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)框架之一。Spring的核心特性之一是使用注解来简化配置,其中`@Autowired`和`@...
Spring框架是企业级应用的支柱,它涵盖了依赖注入(DI)、面向切面编程(AOP)、数据访问、事务管理等多个领域。Spring3中,你可以使用注解如@Service、@Repository、@Controller来标记类的作用,简化配置。此外,...