- 浏览: 21756 次
- 性别:
- 来自: 合肥
最新评论
文章列表
一、背景
系统有三个模块,分别为:组卷、答题卡、阅卷。其功能描述如下:
1、组卷:选择试题并生成试卷。
2、答题卡:根据试卷生成相应的答题卡。
3、阅卷:对作答并扫描后的答题卡进行网上阅卷。
系统有这样的业务逻辑:当开始阅卷后,相对应的答题卡、试卷都不能再修改和删除。于是,阅卷模块与组卷模块、答题卡模块紧密耦合,阅卷模块开始阅卷后要更新试卷、答题卡的状态。
二、问题本质
模块耦合产生一个明显的问题,那就是阅卷模块变得很复杂,例如:开始阅卷要关注试卷,还要关注答题卡。 如果相关联的模块进一步增多的话,阅卷模块将不堪重负。
三、解决措施
想到的一个解决办法,就 ...
task
observer
模块划分优先于设计模式,MessageService
异常与日志
- 博客分类:
- 新员工培训:Spring事务/日志/异常
异常
使用异常,让你的程序
(1)、写出“现代”的代码
(2)、结构更加清晰
(3)、错误更容易定位
(4)、用户体验更好
(5)、你的模块更加易用和稳定
(6)、你还需要什么呢?
详见:《使用.NET异常机制》
1、每一个系统都要精心设计自己的异常体系结构,例如下图
ELPSysException是系统异常,一般不显示给用户看,主要作用是对check异常的包装。
ELPBizException是所有业务异常的基类,出现这种异常时可以告知用户,可以扩展特定的子异常类。
2、spring mvc在controller层提供了统一的异常处理接口
public ...
什么是事务?
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。
详见:http://baike.baidu.com/view/1298364.htm?fr=aladdin
搜索关键字:数据库事务
事务隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、 ...
redis批量操作,删除、过期等
- 博客分类:
- redis
./redis-cli -p 6380 keys "znyin*" | xargs -t -i ./redis-cli -p 6380 expire {} 300
//var data = {name: "iflytek", year: 1999};
/**********************************************/
var getTpl = function(tpl,data){
var re = /<%([^%>]+)?%>/g;
while (match = re.exec(tpl)) {
tpl = tpl.replace(match[0], data[match[1]]);
...
同事将tomcat 7的的Connector的connectionTimeout配置为0,结果出现了如下的错误:
比较大的文件无法下载,下载一部分就停止了。日志监控中能看到下面的错误,
net error CONTENT LENGTH MISMATCH
ClientAbortException
IOException
原来,connectionTimeout配置为0表示超时时间为0,并不是“没有超时限制”。
最后将配置修改如下,问题得到解决:
<Connector port="8010" protocol="HTTP/1.1" ...
应用程序报错,“java.net.SocketException: No buffer space available”。
使用netstat命令,发现有很多连接处于TIME-WAIT状态。
原来windows操作系统是有最大socket连接数限制的。
参考资料:
Windows Socket 最大连接数
netstat大量time_wait连接
用HibernateDaoSupport类的getSession方法取得Session进行数据库操作后,可以不用关闭Session。
当要使用延迟抓取功能时,用Session类的get方法来得到对象,且不要关闭Session。这样得到的对象是持久对象,上层使用时一定不要更改其属性的值,除非你真的想更改其属性的值且持久化。
利用Hibernate的Native SQL查询来直接执行Sql语句,不要使用jdbc了。
有HQL或Sql语句出现时,应将这些语句封装成DAO中的方法,供外部使用。
在hbm.xml文件中设置实体的BatchSize后,在同一个Session中更新对象时,就会 ...
用MyEclipse 直接部署maven项目和调试,详见附件。
修改maven web工程的build的outputDirectory为\webapp\WEB-INF\classes,如下所示:
<build>
<outputDirectory>${basedir}\src\main\webapp\WEB-INF\classes</outputDirectory>
</build>
修改maven web工程的Build Path中的resources文件夹的Excluded为None、Included为Al ...
在Windows 7操作系统上同时安装了Word 2007与Power Designer,结果Word出现了一些奇怪的问题。
切换窗口后,鼠标点击Word,无法获得光标。
在大纲视图中单击,Word无法自动定位。
后来才发现,原来是Word中加载了一个Power Designer的加载项引起的,将其移除就可解决问题。具体操作方法如下:
点击“Word选项——加载项”,转到“com加载项”,将“PowerDesigner12 Requirements COM Add-In for Microsort Word”前的勾去掉。
jdk1.5中的enum类型可以有构造函数,这样就可以为其中的每一项设置不同的类型,代码如下:
/**
* 审核选项类型
* @author znyin
*
*/
public enum CheckOptionType
{
/**
* 不同意类型
*/
UnAgreeType("UnAgreeType"),
/**
* 是否移交稽查
*/
MoveToInspect("MoveToInspect"),
/**
* 注销方式
*/ ...
从SVN上下载源代码后,Project无法Build。
出现些问题的原因是,Project的ClassPath不正确,例如引用Jar包被删除了。从Problem窗口中也能看出一些信息。
利用Hibernate从数据库中获取记录时,报“identity of XXX was altered from XXX to XXX”的异常。
出现此问题的原因是,PO的id属性的get方法中对其进行了修改,要检查之。
启用MyEclipse的内存监控后,有时可能会弹出一个Error,这时最好尽快将MyEclipse重启一下,以免产生严重问题。
当MyEclipse崩掉后,再次动行,无法 ...
spring-基于注释(Annotation)的配置(转)
Hibernate实体关系映射
spring官方的文档
struts官方的文档
八个改善Java遗留系统的技巧
myeclipse6.5上基于JAX-WS开发Webservice(中文示例)