`
yzz9i
  • 浏览: 220643 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
Spring AOP控制日志管理 spring aop控制日志管理 Spring AOP控制日志管理
Spring AOP控制日志管理
1. 编写po类 LogInfo
package com.strongit.credit.manager.log.po;

/**
 * LogInfo generated by MyEclipse Persistence Tools
 */

public class LogInfo implements java.io.Serializable {

    // Fields

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private Long logId;

    private String logUserName;

    private String logOrgName;

    private String logContent;

    private String logIp;

    private String remark;

    private String logDate;

    private String logOrgId;

    // Constructors

    /** default constructor */
    public LogInfo() {
    }

    /** full constructor */
    public LogInfo(String logUserName, String logOrgName, String logContent,
            String logIp, String remark, String logDate, String logOrgId) {
        this.logUserName = logUserName;
        this.logOrgName = logOrgName;
        this.logContent = logContent;
        this.logIp = logIp;
        this.remark = remark;
        this.logDate = logDate;
        this.logOrgId = logOrgId;
    }

    // Property accessors

    public Long getLogId() {
        return this.logId;
    }

    public void setLogId(Long logId) {
        this.logId = logId;
    }

    public String getLogUserName() {
        return this.logUserName;
    }

    public void setLogUserName(String logUserName) {
        this.logUserName = logUserName;
    }

    public String getLogOrgName() {
        return this.logOrgName;
    }

    public void setLogOrgName(String logOrgName) {
        this.logOrgName = logOrgName;
    }

    public String getLogContent() {
        return this.logContent;
    }

    public void setLogContent(String logContent) {
        this.logContent = logContent;
    }

    public String getLogIp() {
        return this.logIp;
    }

    public void setLogIp(String logIp) {
        this.logIp = logIp;
    }

    public String getRemark() {
        return this.remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getLogDate() {
        return this.logDate;
    }

    public void setLogDate(String logDate) {
        this.logDate = logDate;
    }

    public String getLogOrgId() {
        return this.logOrgId;
    }

    public void setLogOrgId(String logOrgId) {
        this.logOrgId = logOrgId;
    }

}

2. 编写action  class LogManage
package com.strongit.credit.manager.log.action;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.strongit.credit.manager.log.po.LogInfo;

/**
 * 
 * @author lanjh
 * @ 2008-10-20  上午10:18:04
 *
 */
public class LogManage extends HibernateDaoSupport {
    /**
     * 保存日志信息
     * @param joinpoint
     * @return
     */
    public boolean getLog(final LogInfo logInfo) {
        boolean flag = false;
        LogInfo logInfo = null;
        try {
            this.getHibernateTemplate().save(logInfo);
            this.getHibernateTemplate().flush();
            flag = true;
        } catch (Exception e) {
            flag = false;
            e.printStackTrace();
        }
        return flag;
    }
}


3 . spring 配置文件
<?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:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
    
    <!-- AOP控制 角色管理 日志管理 -->
    <bean id="log" class="com.strongit.credit.manager.log.action.LogManage">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>    
    
    <!-- AOP控制 树形管理 -->
    <!-- 增加-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="treeInsertMethods" expression="execution(* com.strongit.credit.manager.treemanager.service.*.add*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="treeInsertMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 编辑 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="treeUpdateMethods" expression="execution(* com.strongit.credit.manager.treemanager.service.*.update*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="treeUpdateMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 删除 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="treeDeleteMethods" expression="execution(* com.strongit.credit.manager.treemanager.service.*.delete*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="treeDeleteMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    
    <!-- AOP控制 信息管理模块 -->
    <!-- 增加-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="infoInsertMethods" expression="execution(* com.strongit.credit.manager.infomanager.service.*.insert*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="infoInsertMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 编辑 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="infoUpdateMethods" expression="execution(* com.strongit.credit.manager.infomanager.service.*.update*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="infoUpdateMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 删除 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="infoDeleteMethods" expression="execution(* com.strongit.credit.manager.infomanager.service.*.delete*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="infoDeleteMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 审核与消审 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="infoIsauditMethods" expression="execution(* com.strongit.credit.manager.infomanager.service.*.isaudit(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="infoIsauditMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    
    <!-- AOP控制 意见建议模块 -->
    <!-- 回复 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="recommandUpdateMethods" expression="execution(* com.strongit.credit.manager.recommandmanager.service.*.update*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="recommandUpdateMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 删除 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="recommandDeleteMethods" expression="execution(* com.strongit.credit.manager.recommandmanager.service.*.delete*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="recommandDeleteMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 审核与消审 -->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="recommandIsauditMethods" expression="execution(* com.strongit.credit.manager.recommandmanager.service.*.isaudit*(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="recommandIsauditMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    
    
    <!-- AOP控制 企业账号管理 -->
    <!-- 增加-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="memberInsertMethods" expression="execution(* com.strongit.credit.manager.membermanager.service.*.save(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="memberInsertMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 删除-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="memberDeleteMethods" expression="execution(* com.strongit.credit.manager.membermanager.service.*.delete(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="memberDeleteMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 修改-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="memberUpdateMethods" expression="execution(* com.strongit.credit.manager.membermanager.service.*.update(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="memberUpdateMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    
    <!-- AOP控制 个人账号管理 -->
    <!-- 增加-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="personalInsertMethods" expression="execution(* com.strongit.credit.manager.personalmanager.service.*.save(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="personalInsertMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 删除-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="personalDeleteMethods" expression="execution(* com.strongit.credit.manager.personalmanager.service.*.delete(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="personalDeleteMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 更新-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="personalUpdateMethods" expression="execution(* com.strongit.credit.manager.personalmanager.service.*.update(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="personalUpdateMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    
    
    <!-- AOP控制 投票主题管理 -->
    <!-- 增加-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="themeInsertMethods" expression="execution(* com.strongit.credit.manager.poll.service.*.save(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="themeInsertMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 删除-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="themeDeleteMethods" expression="execution(* com.strongit.credit.manager.poll.service.*.del(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="themeDeleteMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    <!-- 更新-->
    <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="themeUpdateMethods" expression="execution(* com.strongit.credit.manager.poll.service.*.isaudit(..))"/>
            <aop:after-returning method="getLog" pointcut-ref="themeUpdateMethods" returning="retVal"/>
        </aop:aspect>
    </aop:config>
    
    
</beans>


4 . gg 

5、no gg,,,go on 。 by lanjh  2011.9.8

另外还可以采用一种方式

   
/**
     * <aop:config>
        <aop:aspect ref="log">
            <aop:pointcut id="AllCreateMethods" expression="execution(* com.strongit..service.*.create*(..))"/>
            <aop:around method="recordLog1"  pointcut-ref="AllCreateMethods"/>
        </aop:aspect>
    </aop:config>
     * @param logInfo
     */
    public void recordLog1(final ProceedingJoinPoint joinpoint) {

        try {
        this.getHibernateTemplate().execute(new HibernateCallback() {
            public Object doInHibernate(Session session)
                    throws HibernateException, SQLException {
                try {
                    session.save((StrongLogInfo) joinpoint.proceed());
                } catch (Throwable e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                session.flush();
                return null;
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
td 自动换行样式 td 自动换行样式
style="width:100%;word-wrap:break-word;word-break:break-all;" 
Java 脚本代码
   //  在不同浏览器里面的判断
<script type="text/javascript">
   

    function uploadInfo(){
    	
    	var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        var s;
         (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
         (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
         (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
         (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
         (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

        
        if (Sys.ie) {  // IE
        	location.href="./publish_ad-sd.jsp";
        }
        if (Sys.firefox){  // FIREFOX
        	location.href="./policy-ticket-finance/public_records/publish_ad-sd.jsp";
        }
        if (Sys.chrome) {  //CHROME
        	document.write('您使用的是 chrome 浏览器: ' + Sys.chrome + '此操作暂不支持chrome浏览器');
        }
        if (Sys.opera) document.write('您使用的是 Opera 浏览器: ' + Sys.opera + '请使用使用多的前三浏览器');
        if (Sys.safari) document.write('您使用的是Safari 浏览器: ' + Sys.safari + '请使用使用多的前三浏览器');
    	
    }
   
</script>

从命令行进入导出mysql 数据表 脚本 从命令行进入导出mysql 数据表 脚本,
D:\>mysqldump -uroot -padmin sms0  tb_purview tb_mo
_ad_sd tb_ad_sd_file_log tb_ad_sd_log >temp.sql
Global site tag (gtag.js) - Google Analytics