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));
IDCM项目学习笔记的更多相关文章
- java maven、springmvc、mybatis 搭建简单Web项目学习笔记
前言: 空余的时间,学学 Java,没准哪天用的到: 环境搭建折腾了好几天,总算搞顺了,也做个学习笔记,以防后面会忘记: 一.安装文件及介绍 JDK:jdk1.8.0 77 eclipse-maven ...
- 【音乐App】—— Vue-music 项目学习笔记:用户个人中心开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌曲列表 收藏歌曲 一.用 ...
- 【音乐App】—— Vue-music 项目学习笔记:歌曲列表组件开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 当前歌曲播放列表 添加歌曲 ...
- 【音乐App】—— Vue-music 项目学习笔记:搜索页面开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 搜索歌手歌曲 搜索历史保存 ...
- 【音乐App】—— Vue-music 项目学习笔记:歌单及排行榜开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌单及详情页 排行榜及详情 ...
- 【音乐App】—— Vue-music 项目学习笔记:播放器内置组件开发(二)
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 播放模式切换 歌词滚动显示 ...
- 【音乐App】—— Vue-music 项目学习笔记:歌手详情页开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌曲列表 歌曲播放 一.子 ...
- 【音乐App】—— Vue-music 项目学习笔记:歌手页面开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 一.歌手页面布局与设计 需 ...
- 【音乐App】—— Vue-music 项目学习笔记:推荐页面开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 上一篇总结了项目概述.项目准备.页面骨架搭建.这一篇重点梳理推荐页面开发.项目github地址:https://github.com/66We ...
随机推荐
- AutoMapper 最佳实践
AutoMapper 是一个基于命名约定的对象->对象映射工具. 只要2个对象的属性具有相同名字(或者符合它规定的命名约定),AutoMapper就可以替我们自动在2个对象间进行属性值的映射.如 ...
- php性能优化
序 很长时间没有写博文了,最近换了工作,长时间加班,根本没有时间做其他事情!今天闲下来了,想一想php性能方面的事情.这也是我2014年的第一篇博文! 推荐阅读:初学者到中级者应该掌握的! p ...
- 再探.NET的PE文件结构(安全篇)
一.开篇 首先写在前面,这篇文章源于个人的研究和探索,由于.NET有自己的反射机制,可以清楚的将源码反射出来,这样你的软件就很容易被破解,当然这篇文章不会说怎么样保护你的软件不被破解,相反是借用一个软 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (16) -----第三章 查询之左连接和在TPH中通过派生类排序
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-10应用左连接 问题 你想使用左外连接来合并两个实体的属性. 解决方案 假设你有 ...
- Objective-C 装饰模式--简单介绍和使用
装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 比如游戏机有一个GamePad类, 现在要增加一个作弊功能(例如100 ...
- Cookie与Session
再说Cookie与Session之前,先要了解一下http协议. 何为http协议: http协议即超文本传输协议,一种基于浏览器请求与服务器响应的协议,该协议主要的特点就是它是一种无状态的协议(只针 ...
- C++中static数据成员详解
本文和大家分享的主要是c++中static数据成员的相关用法及源码示例,希望能帮助大家更好的学习C++. static(静态存储)数据成员 StaticTest.cpp : 定义控制台应用程序 ...
- 【源码】Word转PDF V1.0.1 小软件,供新手参考
昨天有一朋友让我帮忙找一款Word转PDF的软件,今天自己捣鼓出点成果封装个Helper供大家使用~ 开源地址:https://github.com/dunitian/WordConvertPDF 软 ...
- VB.NET 如何进行调用HTTP外部接口
直接上干货 Private Function POST(ByVal URL$, ByVal data$) Dim http On Error Resume Next http = CreateObj ...
- nodejs+easyui(抽奖活动后台)增删改查
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfAAAAJACAIAAAD97KNZAAAgAElEQVR4nO2daXxb5Z2o7w+dO1/ufL ...