【2018-2019】java日志aop-word范文模板 (16页)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
== 本文为word格式,下载后可方便编辑和修改! ==
java日志aop
篇一:spring-aop日志处理
基于注解的spring-aop日志处理
编写一个简易demo:
1,在maven的pom.xml文件中添加所需jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
2,创建如下一个日志处理类
/**
* 日志记录处理类
* @author dell
*
*/
@Aspect
@Component
public class LogerAspect {
//起一个标记作用 @Pointcut("execution (*
com.manager.*.service.*.*(..))") public void logAspect(){ }
//logAspect() 引用上面的标记 @Before(value = "logAspect()") public synchronized void beforeOperateLog(JoinPointjp){ //这里可以做些调用之前的控制操作,比如说权限控制,拦截等System.out.println(“bef ore run….”);
} } @After("logAspect()") public synchronized void
addOperateLog(JoinPointjp){} //这里可以做一些调用之后的处理,如记录日志到数据库System.out.println(“after run….”);
3,创建一个TeseService接口,以及接口的实现类TestServiceImpl
public interface TestService {
public void test();
}
public class TestServiceImpl implement TestService{
public void test(){
System.out.println(“service run….”);
}
}
4,在application-context.xml 配置文件中添加如下配置
<!—强制使用cglib的动态代理,据说性能会好一点-->
<aop:aspectj-autoproxy proxy-target-class=”true”/>
<!—日志处理类-->
<bean id="myAspect" class="
com.manager.utils.annotation.LogerAspect"/>
<!--测试service -->
<bean id="testService"
class="com.manager.system.service.TestServiceImpl"/>
5,创建一个junit单元测试
public class TestModel {
ClassPathXmlApplicationContext context;
TestService service;
@Before
public void before(){
context= new ClassPathXmlApplicationContext("application-context.xml");
service =(TestService)context.getBean("testService");
}
@Test
public void test(){
service.test();
}
}
6,测试运行结果显示:
模拟一个简单的增删改查的日志记录过程
1. 首先创建一个描述注解,用与对字段进行描述,后期用得到/**
* 注解字段
* @author dell
*
*/
@Target(ElementType.FIELD) //表示该注解只能用于字段
@Retention (RetentionPolicy.RUNTIME)
@Documented
public @interface DescAnnotation {
//描叙
String description();
(来自:.spring.service.impl.*.*(..))" id="myPointcut"/> <!--将哪个-->
<aop:aspect id="dd" ref="logService">
<aop:before method="log" pointcut-ref="myPointcut"/> </aop:aspect>
</aop:config>
execution(* * .spring.service.impl.*.*(..))
1)* 所有的修饰符
2)* 所有的返回类型
3)* 所有的类名。