文档章节

Koala业务日志系统使用教程

小咔蹭
 小咔蹭
发布于 2014/10/16 21:10
字数 844
阅读 1096
收藏 5

2 使用教程

前提

成功创建Koala Project,并且勾选集成业务日志子系统。

步骤

1. 业务方法标注@MethodAlias

格式:

@MethodAlias("业务方法别名")

业务方法

 

示例:

@MethodAlias("savePersonInfo")

public PersonInfo savePersonInfo(PersonInfo personInfo) {

         personInfo.save();

         return personInfo;

}

 要求:

  1.      别名必须符合Java方法名的命名规则
  2.      加名别必须有值,目的是为了方便业务方法与日志模板之间的映射
  3.      注解只能标在接口实现类上

2. 创建groovy日志模板

web模块src/main/resourcesbusinessLogConfig目录下创建任意以*.groovy结尾的文件,

例:xxx.groovy

模板:

package org.openkoala.businesslog.config(非必要)

import org.dayatang.domain.InstanceFacroty(非必要)

class OrganizationApplicationImpl { (类名必须符合Java命名)

      //必须

    def context

 

    def OrganizationApplicationImpl_createAsTopOrganization() {

        "${getPreTemplate()}:创建顶层机构:${context._param0.name}"

    }

    def OrganizationApplicationImpl_createCompany() {

        "${getPreTemplate()}:${context._param0.name},创建分公司:${context._param1.name}"

    }

    def OrganizationApplicationImpl_assignChildOrganization() {

        "${getPreTemplate()}:${context._param0.name},分配子机构:${context._param1.name},期限为${context._param2}"

    }

    def OrganizationApplicationImpl_createDepartment() {

        "${getPreTemplate()}:${context._param0.name}下创建部门:${context._param1.name}"

    }

    def OrganizationApplicationImpl_terminateEmployeeOrganizationRelation() {

        "${getPreTemplate()}:终止机构${context._param0.name}"

    }

    def getPreTemplate(){

        "${context._user}-"

    }

}

 说明:

日志模板实际上是一个groovy类,你可以定义任何方法,只有某个业务方法的别名(@MethodAlias的值)等于方法名,我们才认为它是一个业务日志方法,它的返回值(return或者放在方法最后一行的变量)将会被赋值给org.openkoala.businesslog.BusinessLog对象进行持久化。

日志方法返回值有两种情况:

1. 只返回一个String类型的日志文本;

2. 返回一个Map,这个Map包括keycategory的日志分类及日志文本。

在类中,def context定义一个变量,这个变量实际上是一个Map

Map中存储的是业务方法的返回值、参数。如果需要,你可以存储任何你需要的数据。你可以从这个context中取出你需要的内容,填充到你的日志中。默认情况下,我们会放一些默认的keycontext中,请看下表。

context参数说明

key

value

_methodReturn

业务方法返回值

_param

业务方法的参数, _param0代表第一个参数 _param1代表第二个参数,依此类推

_executeError 

业务方法执行失败的异常信息

_businessMethod 

业务方法

_user

业务方法操作人

_time

业务方法操作时间

_ip

ip地址

 

 示例1

class PersonInfoApplicationImpl {

    def context

    def savePersonInfo() {
	"创建个人信息"
    }

    def pageQueryPersonInfo() {
    	"查询个人信息列表"
    }
    
}



示例2

package org.openkoala.businesslog.config

class PersonInfoApplicationImpl {

    def context
	
    def savePersonInfo() {
	"${getPreTemplate()}:创建个人信息,名字为:${context._param0.name}"
    }

    def pageQueryPersonInfo() {
    	[category:"查询类", log:"查询个人信息列表"]
    }
    
    def getPreTemplate(){
        "${context._user}-"
    }
    
}



示例3

package org.openkoala

import org.dayatang.domain.InstanceFactory
import org.openkoala.example.application.PersonInfoApplication
import org.openkoala.example.domain.PersonInfo

class PersonInfoApplicationImpl {

    def context
	
    def savePersonInfo() {
	"${getPreTemplate()}:创建个人信息,名字为:${context._param0.name}"
    }

    def pageQueryPersonInfo() {
    	[category:"查询类", log:"查询个人信息列表"]
    }
    
    def removePersonInfo() {
    	PersonInfoApplication personInfoApplication
 = InstanceFactory.getInstance(PersonInfoApplication.class)
    	String name = personInfoApplication.getPersonInfo(577).getName()
    	"删除用户信息:名称为:" + name
    }
    
    def getPreTemplate(){
        "${context._user}-"
    }
    
}

以上示例代码仅供参考


3. 配置Spring切入点

默认不需要配置,项目创建好会把接口实现类的包路径配置成切入点,可自行修改扩展。
切入点配置在web模块src/main/resources下koala-businesslog.properties里,key为pointcut

pointcut=execution(* org.openkoala.example.application.impl.*.*(..))

|| execution(* org.openkoala.example.facade.impl.*.*(..))

 

Web查询页面

运行项目,访问地址:http://localhost:8080/pages/log/index.jsp

 

 

© 著作权归作者所有

小咔蹭

小咔蹭

粉丝 45
博文 32
码字总数 17138
作品 0
广州
程序员
私信 提问
加载中

评论(3)

摸鱼
摸鱼
你好,现在koala的maven仓库关掉了,一些jar包下不了,环境都搭建不起来,你能不能把依赖的jar发一下给我啊,朋友,谢谢,我邮箱244642836@qq.com,感激不尽
v
vwinner88

引用来自“小咔蹭”的评论

注明:该教程针对Koala4
哥,koala4还没发布呢,期待尽快发布,教程尽快同步更新
小咔蹭
小咔蹭 博主
注明:该教程针对Koala4
Koala业务日志系统设计说明

源代码:http://git.oschina.net/openkoala/koala koala-business子模块 模块划分 模块名 作用 koala-businesslog-api 业务日志系统的核心api koala-businesslog-impl 业务日志系统的koala的...

小咔蹭
2014/10/19
1K
0
Koala业务日志系统手动集成

4 手动集成 1. 添加依赖 application层添加业务日志接口模块依赖 <dependency> <groupId>org.openkoala.businesslog</groupId> <artifactId>koala-businesslog-api</artifactId> <version>4.......

小咔蹭
2014/10/20
632
0
项目集成koala业务日志子系统

Koala平台的业务日志子系统是基于Maven的项目模块,最方便的集成是项目也使用Maven,war项目集成请自行下载jar包 前提 依赖spring 添加仓库 <repositories><repository><id>koala-releases</......

小咔蹭
2014/07/13
1K
0
Koala 3.1.1 发布,功能优化BUG修复

Koala 3.1.1 发布,此版本主要已功能优化、BUG修复为主。 功能优化 i18n组件在jboss下读取资源文件修复 KoalaUI Grid组件添加、删除行,使用json数据刷新表格 业务日志子系统缓存编译类,提升...

Koala_考拉
2014/07/01
1K
4
Koala4 发布,Java开发平台

Koala是一个面向Java开发者的开源免费开发平台,以领域驱动设计范 式为指导思想,以DDDLib框架为实现核心,提供KoalaUI前端框架、规 范化项目管理工具OpenCI、在线领域建模工具、强大的组件库...

Koala_考拉
2014/10/27
14K
31

没有更多内容

加载失败,请刷新页面

加载更多

15、SpringMVC进行json交互

SpringMVC进行json交互 json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。 请求json、输出json。要求请求的是json串,前端页面中需要将请求的内容转成json,...

快乐的瓶子
30分钟前
7
0
delphi版插apc杀进程驱动源码

从c代码转的,备份一下,里面有硬编码unit MyDriver;{$HINTS OFF}{$WARNINGS OFF}interfaceusesnt_status, ntoskrnl, native, winioctl, fcall, macros;typeTKILL = ...

simpower
34分钟前
4
0
带你上手一款下载超 10 万次的 IDEA 插件

作者 | 倪超(银时) 阿里云开发者工具产品专家 本文整理自 11 月 7 日社群分享,每月 2 场高质量分享,点击加入社群。 导读:Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发、测试...

阿里云官方博客
34分钟前
4
0
GMAT语法7个常考重要考点分析

GMAT语法考点多,并非所有考点都值得重点关注。实际上GMAT语法存在一些高频考点,考生需要优先掌握它们才能更好地保证得分。同时GMAT备考中大家还需要培养连续做题的耐力。下面小编就来做具体...

bole6
39分钟前
4
0
最佳实践 | RDS & POLARDB归档到X-Pack Spark计算

X-Pack Spark服务通过外部计算资源的方式,为Redis、Cassandra、MongoDB、HBase、RDS存储服务提供复杂分析、流式处理及入库、机器学习的能力,从而更好的解决用户数据处理相关场景问题。 RD...

一肥仔
40分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部