spring的AOP应用输出日志
2017-01-03 00:00
429 查看
摘要: spring的AOP应用输出日志
1.ArithmeticCalculator.java
2.ArithmeticCalculatorImpl.java
3.LoggingAspect.java
4.TestAop.java
5.applicationContext.xml
1.ArithmeticCalculator.java
package com.huanlgiusong.spring.aop.impl; public interface ArithmeticCalculator { int add(int i, int j); int sub(int i, int j); int mul(int i, int j); int div(int i, int j); }
2.ArithmeticCalculatorImpl.java
package com.huanlgiusong.spring.aop.impl; import org.springframework.stereotype.Component; @Component("arithmeticCalculator") public class ArithmeticCalculatorImpl implements ArithmeticCalculator { @Override public int add(int i, int j) { int result = i + j; return result; } @Override public int sub(int i, int j) { int result = i - j; return result; } @Override public int mul(int i, int j) { int result = i * j; return result; } @Override public int div(int i, int j) { int result = i / j; return result; } }
3.LoggingAspect.java
package com.huanlgiusong.spring.aop.impl; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; //吧这个类声明为一个切面 需要把这个类放入到IOC容器中去再声明为一个切面 然后要声明before让它在哪个方法之前执行 @Aspect @Component public class LoggingAspect { //声明方法是一个前置通知 在目标方法开始之前执行 @Before("execution(public int com.huanlgiusong.spring.aop.impl.ArithmeticCalculator.add(int , int ))") public void beforeMethod(){ System.out.println("the method begins"); } }
4.TestAop.java
package com.huanlgiusong.spring.aop.impl; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestAop { @Test public void test1() { // 1.创建Spring的IOC容器 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); // 2.从IOC容器中获取bean的实例 ArithmeticCalculator arithmeticCalculator = (ArithmeticCalculator) ctx .getBean("arithmeticCalculator"); // 3.使用bean int result = arithmeticCalculator.add(1, 100); System.out.println(result); } }
5.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:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- 配置扫描包 --> <context:component-scan base-package="com.huanlgiusong.spring.aop.impl"></context:component-scan> <!--使用AspectJ 注解起作用 :自动为匹配的类生成代理对象 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> </beans>
相关文章推荐
- Spring Aop 日志拦截应用
- SSH框架系列:Spring AOP应用记录日志Demo
- Spring Aop 日志拦截应用 分类: SpringMvc 2015-04-19 14:48 143人阅读 评论(0) 收藏
- SpringAOP实现拦截Controller请求参数并输出到日志
- Spring AOP项目应用——方法入参校验 & 日志横切
- Spring Aop 日志拦截应用 分类: SpringMvc 2015-04-19 14:48 144人阅读 评论(0) 收藏
- 利用spring AOP实现每个请求的日志输出
- 利用spring AOP实现每个请求的日志输出
- 面试题:应用中很多jar包,比如spring、mybatis、redis等等,各自用的日志系统各异,怎么用slf4j统一输出?
- 不使用spring的aop功能实现日志输出
- spring 基于aop 实现日志输出 定义在controller层无效
- 利用spring AOP实现每个请求的日志输出
- SpringAOP的应用实践之日志管理
- 利用SpringAOP 实现 日志输出
- spring的AOP实现日志输出
- Spring AOP实现日志输出时的引入包错误
- SSH框架系列:Spring AOP应用记录日志Demo
- spring-Aop应用日志处理
- 5.8 把输出日志的实例改成用Spring的AOP来实现
- SpringMVC 利用spring AOP实现每个请求的日志输出