`
mimang2007110
  • 浏览: 237228 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring管理日志的例子

 
阅读更多

Spring 带给我们的另一个好处就是让我们可以“专心做事”,下面我们来看下面一个例子:

01 <b>public void doSameSomesing(int age,String   name){
02      // 记录日志
03      log.info(" 调用 doSameSomesing 方法,参数是: "+agfe+” ”+name);
04      // 输入合法性验证
05      if (age<=0){
06           throws new IllegalArgumentException("age 应该大于 0");
07      }
08      if (name==null || name.trim().equals("")){
09           throws new IllegalArgumentException("name 不能为空 ");
10      }
11      // 异常处理
12      try{ ...
13               service.save(age,name);// 业务处理存数据
14      }catch(...){
15      }catch(...){
16      }
17      // 事务控制
18      tx.commit();
19 }</b>


 

大家想一下我们构建系统的主要目的是业务处理,但是我们在完成上面业务前需要解决如日志记录,参数验证等如此多方面的事情,这样的话留给我们考虑业务的时间就少了,使我们的业务代码质量得不到很好的保证,而这些方面又是不可缺少的我们不能不管,那么怎么办呢,我们能不能集中对这些方面进行一个统一的管理 ,当然可以,这就是 spring aop 要解决的问题。下面我们来看一个简单的例子,通过 spring aop 来集中解决日志方面的事情。

下面我们按照下面几个步骤去做:

1、   定义并实现对日志方面的处理。

01 <b>package com.springaop.aop;
02 import java.lang.reflect.Method;
03 import java.util.Arrays;
04 import java.util.Date;
05 import org.springframework.aop.MethodBeforeAdvice;
06 public class LogAdvice implements MethodBeforeAdvice{
07     public void before(Method method, Object[] args, Object o)
08            throws Throwable {
09        System. out .println( " 系统日志: " +( new Date())+ ":" " 调用了 " +method.getName()+" : 使用了参数 " +(Arrays.toString (args)));
10        
11     }
12 }</b>


 

( 注意这里我们要实现 MethodBeforeAdvice 接口 指的是在方法执行前织入执行,类似还有 AfterReturningAdvice )

2、   定义业务代码

2.1 业务接口

 

01 package com.springaop.service;
02 public interface IAopMethod {
03 public void doSomesing(String name);
04 }
05 2.2 业务实现类
06 package com.springaop.service.impl;
07 import com.springaop.service.IAopMethod;
08 public class AopMethodimpl implements IAopMethod {
09     public void doSomesing(String name) {
10        System. out .println( "name:" +name);
11        
12     }
13 }

 

 

 

3. 配置 applicationContext.xml.

 

01 <!-- 处理日志方面的 bean-->
02     bean name "mylogadvice" class "com.springaop.aop.LogAdvice" ></ bean >
03     <!-- 处理业务的 bean-->
04     bean name "aopmethodtarget" class "com.springaop.service.impl.AopMethodimpl" ></ bean>
05     <!-- 将日志 bean 和业务 bean 通过代理的方式进行代理整合 -->
06     bean name "aopmethod" class "org.springframework.aop.framework.ProxyFactoryBean " >
07        property name "interceptorNames" >
08            list >
09               value > mylogadvice </ value >
10                   <!-- 此处还可以放置多个处理方面的 bean-->
11            </ list >
12        </ property >
13        property name "target" ref "aopmethodtarget" ></ property >
14     </ bean >

 

 


4. 测试类

  

01 package com.springaop.service.impl;
02 import org.springframework.context.ApplicationContext;
03 import org.springframework.context.support.ClassPathXmlApplicationContext;
04 import com.springaop.service.IAopMethod;
05 public class test {
06     public static void main(String[] args) {
07        ApplicationContext context= new ClassPathXmlApplicationContext( "applicationContext.xml");
08        IAopMethod method=(IAopMethod)context.getBean( "aopmethod" );
09       method.doSomesing( " zhangsan " );
10     }
11 }

 

 

运行结果是:

系统日志: Fri Sep 24 12:45:24 CST 2010: 调用了 doSomesing : 使用了参数 [zhangsan]

hello: zhangsan

此为为转发

分享到:
评论

相关推荐

    spring注解管理日志

    当涉及到日志管理时,Spring提供了多种方式来帮助开发者轻松记录应用程序的运行时信息。本篇将详细介绍如何利用Spring注解进行日志管理,以及如何获取操作的详细信息。 首先,让我们了解Spring中用于日志管理的主要...

    Spring AOP 日志管理 实例

    Spring AOP 日志管理 实例LoggingThrowsAdvice.java

    spring aop 操作日志

    本资源用来展示如何使用 spring aop 进行日志记录,例子里面通过aop的配置,把产生的日志存放到当前项目的根目录下,而且对方法执行过程中的参数进行了记录,对于aop如何记录日志不清楚的同学可以看看。

    spring AOP 切面日志 分层打日志

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许我们在不修改源代码的情况下,对程序进行横向关注点的插入,比如日志记录、事务管理、权限检查等。在这里,我们重点关注如何利用Spring AOP实现分层...

    spring简单注解+log4j记录日志

    在这个例子中,`log`对象通常是通过Spring的自动注入得到的,它已经配置好了Log4j的日志输出。 在提供的"test_AOP"这个子文件夹中,我们可以推测它包含了一个关于Spring AOP(面向切面编程)的示例。AOP是Spring...

    Spring Mvc AOP通过注解方式拦截controller等实现日志管理

    在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志管理。本教程将详细介绍如何利用注解来配置和使用AOP来拦截Controller层的方法,以便记录执行过程中的相关信息,实现日志...

    Spring+webservice例子

    3. **Spring AOP**:可能使用AOP来处理事务管理和日志记录,确保Web服务调用的原子性和可跟踪性。 4. **Spring MVC**:如果涉及RESTful服务,Spring MVC框架将用于处理HTTP请求,将请求映射到特定的控制器方法,...

    spring aop实现日志分析管理

    在Spring AOP(面向切面编程)中实现日志分析管理是一种常见的做法,它能帮助开发者跟踪和理解系统运行过程中的行为,同时提供详细的错误日志以支持运维工作。通过元注解的方式,我们可以轻松地将日志记录功能集成到...

    JAVA 中Spring aop 实现日志记载

    压缩包中的文档可能包含了详细步骤,如何创建项目、配置Spring、编写切点和通知,以及如何运行和测试这个日志记载的例子。通过阅读文档,开发者可以理解如何在实际项目中应用这些概念。 4. **运行与测试** 使用...

    Spring的小例子

    这个“Spring的小例子”旨在为初学者提供一个简单的起点,让他们能够快速理解和掌握Spring的核心概念。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

    SPRING学习小例子

    本篇将深入解析“SPRING学习小例子”,涵盖Spring的核心特性——依赖注入(DI),事务管理,面向切面编程(AOP)以及数据库操作。 一、依赖注入(Dependency Injection,简称DI) 依赖注入是Spring的核心特性,它...

    spring架构项目案例

    总结来说,"spring架构项目案例"是一个适合初学者的实践教程,涵盖了Spring 2.0的关键特性,包括依赖注入、AOP、Spring MVC、JDBC支持、事务管理和ORM集成。通过学习和实践这个项目,开发者可以掌握Spring的核心概念...

    spring quartz简单例子

    在这个例子中,Spring将作为容器来管理和初始化Quartz的相关组件。 2. **Quartz库**:Quartz是Java的一个开源作业调度框架,可以用来安排和执行周期性的任务。它支持复杂的时间表定义,如cron表达式,同时具备高...

    Spring AOP--日志管理

    本文将深入探讨如何在Spring AOP中实现日志管理,以便更好地监控和调试应用程序。 首先,让我们理解什么是Spring AOP。AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在提高代码的可复用性和...

    简单spring aop 例子

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...

    Spring AOP完整例子

    总结一下,Spring AOP提供了一种优雅的方式来处理系统的横切关注点,如日志记录、事务管理或性能监控。通过定义切点、创建切面和配置通知,我们可以实现代码的解耦,提高可维护性和复用性。这个例子提供了学习Spring...

    spring boot 小例子

    4. **日志配置**:默认情况下,Spring Boot 使用自己的日志解决方案,但在外部容器中可能需要调整以匹配容器的日志管理策略。 5. **资源路径**:静态资源(如 CSS、JavaScript 文件)的访问路径可能需要根据容器环境...

    spring security 完整项目实例

    最后,Spring Security提供了丰富的日志和审计功能,帮助开发者追踪和理解系统的安全行为。 总之,这个"spring security 完整项目实例"涵盖了Spring Security的核心组件和用法,包括用户管理、身份验证、权限控制、...

    Spring框架应用案例

    3. **AOP(面向切面编程)**:Spring的AOP模块提供了一种方法,可以在不修改源代码的情况下,插入跨切面关注点,如日志、事务管理等。这使得业务逻辑更专注于核心功能,而其他通用功能可以作为独立的模块进行处理。 ...

    Spring入门案例

    在这个例子中,`exampleBean`是被Spring管理的一个Bean,它依赖于`dependencyBean`。Spring会自动为`exampleBean`注入`dependencyBean`的引用,从而实现依赖关系的管理。 Spring还提供了AOP特性,允许我们在不修改...

Global site tag (gtag.js) - Google Analytics