IDCM项目学习笔记

项目介绍:

IDCM:Internet Data center monitoring 网络数据中心监控平台

IRP:Information Resource planing 信息资源规划

1.设置表中公共字段

在业务逻辑的表中,都有五个公共字段,如下:

`gmt_create` datetime NOT NULL COMMENT ‘数据新增时间‘,
`creator` varchar(128) NOT NULL DEFAULT ‘0‘ COMMENT ‘创建者‘,
`gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘数据修改时间‘,
`modifier` varchar(128) NOT NULL DEFAULT ‘0‘ COMMENT ‘修改者‘,
`is_deleted` char(1) NOT NULL DEFAULT ‘n‘ COMMENT ‘是否逻辑删除,默认为n‘,

在常见的增删改查操作中,需要对表中的五个字段赋值。而添加每个实体类的时候,都有相同的方法,因此,我们将这些公共的部分提取出来,构造了CommonUtil.java类,如下:

package com.alibaba.tboss.common.auth.common;

import java.lang.reflect.Method;
import java.util.Date;

import org.apache.commons.lang.StringUtils;

import com.alibaba.tboss.common.auth.exception.AppAuthCommonException;
import com.alibaba.tboss.common.auth.privilege.PrivilegeInfo;

public class CommonUtil {

    private static String SET_CREATOR     = "setCreator";

    private static String SET_MODIFIER    = "setModifier";

    private static String SET_GMTCREATE   = "setGmtCreate";

    private static String SET_GMTMODIFIED = "setGmtModified";

    private static String SET_ISDELETED   = "setIsDeleted";

    public static void setCommonValueForCreate(Object pojo, PrivilegeInfo privilegeInfo) {
        try {
            Method setCreator = pojo.getClass().getMethod(SET_CREATOR, String.class);
            setCreator.invoke(pojo, getOperator(privilegeInfo));

            Method setModifier = pojo.getClass().getMethod(SET_MODIFIER, String.class);
            setModifier.invoke(pojo, getOperator(privilegeInfo));

            Method setGmtCreate = pojo.getClass().getMethod(SET_GMTCREATE, Date.class);
            setGmtCreate.invoke(pojo, new Date());

            Method setGmtModified = pojo.getClass().getMethod(SET_GMTMODIFIED, Date.class);
            setGmtModified.invoke(pojo, new Date());

            Method setIsDeleted = pojo.getClass().getMethod(SET_ISDELETED, String.class);
            setIsDeleted.invoke(pojo, "n");

        } catch (Exception e) {
            throw new AppAuthCommonException("invoke method error ", e);
        }
    }

    public static String getOperator(PrivilegeInfo pvgInfo) {
        if (pvgInfo == null || StringUtils.isEmpty(pvgInfo.getWorkNo())) {
            return "SYSTEM";
        } else {
            return pvgInfo.getWorkNo();
        }
    }
}

CommonUtil.setCommonValueForCreate(bean,privilegeInfo);由于当前类中的方法是静态方法,所以,我们在业务逻辑代码中可以直接用类名来调用静态方法.Java反射的使用.

2.<aop:scoped-proxy/>配置的解释

首先,xml中的标签<bean>、<property>、<map>、<entry>、<beans>是如何被解析的,参考xml基础教程:

http://www.w3school.com.cn/x.asp

其次,bean的scope属性取值:singleton、prototype、request、session、globalsession。

System.out.println(System.identityHashCode(s1));

时间: 2024-07-31 21:42:47

IDCM项目学习笔记的相关文章

六自由度机械臂项目学习笔记

由于课程要做一个控制六自由度机械臂的项目,主要是学习舵机和舵机控制的知识,在这里做一下学习笔记. 使用的舵机为2个DS3115MG数字舵机+4个MG996R模拟舵机. 1.舵机基本构造 2.舵机控制原理 控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘.舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到目标停止.其工作流程

CentOS7的安装及部署javaweb项目 - 学习笔记

一, 概述: 这两天在捣鼓linux的东西,安装及配置网络环境,共享设置,以及安装jdk , tomcat环境,并将自己开发的javaweb系统部署到上述环境中.经过周末熬到深夜,终于搞掂,现在整理一下笔记,分享出来,以后也可以回顾. 二, 安装CentOS7: 我这里是基于VirtualBox的安装,安装的是无桌面版本CentOS 1, 下载virtualbox并安装 此处省略100字.... 2, 下载CentOS最小安装版本 官网: https://www.centos.org/downl

Unity3d - RPG项目学习笔记(二十)

前期工程将装备信息导入到了工程中,且实现了在背包内鼠标移动显示物品提示信息,本次工程开始构建装备穿戴功能. 项目需求: 右键点击背包内的装备,使其穿戴在身上. 需求分析: 右键点击背包内的装备,注意,此时的装备还是背包内的一个物品,即是工程所定义的id为2001-2010的InventoryItem而已:需求可以抽象为右键点击背包内的一个物品,如果该物品是装备类,则在角色的EquipmentUI相应的位置生成一个与之图标相同的EquipmentItem,则视为“装备”了该物品. 具体实现: ①右

网上图书商城项目学习笔记-003系统功能模块分析

1. itcastgoods文件夹介绍2. 项目导入演示 * 导入数据库 * 导入项目,发布,运行3. 项目原型导入演示 * 导入项目原型,发布,运行4. 小工具介绍5. jQuery介绍 6. 项目前台功能介绍 * User模块 > 注册 > 激活 > 登录 > 修改密码 > 退出 * Category模块 > 显示所有分类 * Book模块 > 按分类查询(分页) > 按图名查询(模糊)(分页) > 按作者查询(分页) > 按出版社查询(分页

网上图书商城项目学习笔记-031图书管理模块介绍及添加图书

一.流程分析 1.图书管理模块介绍 2. 3. 4.添加图书第一步 5.添加图书第二步 二.代码 1.view层 (1)body.jsp 1 <body> 2 <h1 align="center">图书管理</h1> 3 <p align="center"> 4 <a href="<c:url value='/admin/AdminBookServlet?method=addPre'/>&q

开源中国社区 iPhone 客户端项目学习笔记

注:本文假设你已经有xcode4或以上的开发环境 (建议 Xcode 4.3) 直接用双击 oschina.xcodeproj 文件启动 xcode 即可 本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享. 下面将简单的解析下项目: 1.AFNetwork --- 通用网络库2.GCDiscreetNotificationView --- 顶部弹出并会自动消失的通知栏3.Thread --- 后台线程对象,处理后台发送带图片的动弹4.SoftwareGroup --- 所

Statistics项目学习笔记

1. http://218.244.157.0:55443/index.html 初始访问时,弹出的窗口为index.html文件,文件有html命令组成.html展现的UI界面用的是WIN10-UI,其介绍可在项目文件夹的README.md有所介绍. Win10-UI是一款win10风格的后台UI,让您轻松搭建一个别具一格的后台界面. 本项目html文件中结构主要是head.body.script:map.html和chart.html用到了script:head:解释了该html文件用到的c

bank项目 学习笔记

package banking2; public class Account { private double balance;//账户余额. public Account(double init_balance) { // TODO Auto-generated constructor stub   balance = init_balance; } public double getBalance(){ return balance; } public void deposit(double

Unity项目学习笔记

1.TCP和IP IP:主要作用是在复杂的网络环境中将数据包发送给的最终的目标地址. 端口号:系统会分给系统端口号  一般知名的端口号在0-1023之间,而我们经常使用的自定义/动态分配的端口号则一般在49152~65535之间. TCP:三次握手和四次挥手   --优点 安全 UTP:优点:快速   缺点:有可能汇丢失消息