- 浏览: 287559 次
- 性别:
- 来自: 北京
最新评论
-
luchuanbaker:
经过测试,实际上,mybatis并没有此问题,我也碰到了这样的 ...
mybatis 异常不友好 举例 -
huang882088:
jboss的war发布到tomcat里报这个错误怎么办?
classloader常见问题总结 -
yourenyouyu2008:
大型,可持续扩展的系统适合使用静态语言。大型系统中的部分地方可 ...
Nuxeo公司探秘:从Python迁移到Java -
yourenyouyu2008:
既然Nuxeo同时使用了Pytho ...
Nuxeo公司探秘:从Python迁移到Java -
panshunchang:
还有一种可能,真的缺这个jar包,在tomcat lib目录下 ...
classloader常见问题总结
文章列表
service对外提供下面方法会保证 一定能获得ActStepDesc对象,这样外部使用时就不用判断null了。
public ActStepDesc selectByBPK(Integer activityId, Integer tplStepId){ ActStepDesc actStepDesc= actStepDescMapper.selectByBPK(activityId, tplStepId); if (null==actStepDesc||null == actStepDesc.getId()) { actStepDesc = ...
1)获取框架中的bean
spring通过静态方法中传递ServletContext对象获得ApplicationContext,而后从ApplicationContext中获得相关bean,如下示例。这样使得调用者必须依赖HttpServletRequest,很难做出无参的静态工具方法。
private static synchronized void init(HttpServletRequest request) { Map<String, Object> beans = WebApplicationContextUtils ...
2013-12-19 方法命名:方法名称体现方法的功能,与谁调用无关
问题描述:磨课活动中有些步骤必须全部活动成员都操作才算完成,由于活动成员中存在一些无效用户导致该步骤无法完成(这些无效成员是不会执行操作的),活动管理员发现这些无效用户并删除后,逻辑上这个步骤应该算是完成了,但是完成标准的设置是在用户操作的时候判断的,因为删除用户后没有进行该步骤的操作,所以不会去判断完成标志。
增加了一个删除用户后重新计算完成标志的方法
public void updateFinishedWhenDeleteUser(Integer actId),当删除活动成员时调用该方法。
该方法的功能就 ...
spring mvc 是传统的以controller为中心的mvc,外部只能通过controller访问,有些情况下两个页面获取的数据相同,只是显示不同,比如区别只是显示同一对象的不同字段,这时也必须提供2个controller,两个controller的区别只是转到不同的页面,并且页面需要的数据已经通过标签方式获取,这样controller中只剩下跳转语句了。
spring mvc提供了一种简易的处理方式 :PathVariable,如下示例
@RequestMapping("/category/{path}") public String category(@ ...
2013-12-06
今天要做一个查询一个字段最大值所在的记录,很多人提供了不同的解决办法
1)select aa,bb,cc from 表1 where aa in (SELECT MAX(AA) FROM 表1 )
2)SELECT * FROM `T_DT_ACTIVITY` T1 INNER JOIN (SELECT MAX(ID) MAX_ID FROM `T_DT_ACTIVITY` A ) B ON T1.`ID`=B.MAX_ID
不使用MAX,通过排序实现,简洁高效
3)SELECT * FROM T_DT_ACTIVITY ORDER BY ID ...
详解Spring事件驱动模型2
- 博客分类:
- 解耦
http://jinnianshilongnian.iteye.com/blog/1902886
事件驱动模型简介
事件驱动模型也就是我们常说的观察者,或者发布-订阅模型;理解它的几个关键点:
首先是一种对象间的一对多的关系;最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方);
当目标发送改变(发布),观察者(订阅者)就可以接收到改变;
观察者如何处理(如行人如何走,是快走/慢走/不走,目标不会管的),目标无需干涉;所以就松散耦合了它们之间的关系。
接下来先看一个用户注册的例子:
用户注册成功后,需要做这么多事:
1、加积分
2、发确认 ...
培训项目中各种复用场景
- 博客分类:
- 复用组件
复用存在于class,页面,css,js,配置等地方,应该最大程度地减少重复,下面列举一些项目中的复用场景。
复用方案
1】标签代替controller
1)用户管理的教研组
很多地方需要下拉出当前用户管理的教研组,做成标签或者数据list。
【发组长小结】【日常教学】【。。。】
String url= UrlUtils.buildRequestUrlNoQuery(request); String uuKey = url+ project.getCode()== null ? "" : project.getCode();
上面代码会先执行url+ project.getCode(),使得uuKey得不到url的值,将url+ project.getCode()括起来就可以了。
String uuKey = (url+ project.getCode())== null ? "" : project.get ...
问题描述
实体中的属性使用枚举和boolean会增加代码的可读性,但是实体和数据库的映射上不能很自然地支持,这样导致由于数据库的原因使得实体中属性使用基本类型来代替枚举和boolean。
实体中属性实例如下
private Integer status;// 0:草稿,1:合格 2:优秀 3:退回
private Byte open;//0;关闭 1:打开
在页面,java代码,和sql到处使用数字,使得代码可读性极差,代码越多,时间越长越没法维护。
<#if trainGroup.type==1><a href="javas ...
重定向url中带参数问题,以及http 参数解析
- 博客分类:
- http
进入一个页面处理完后还要返回到进入的页面,常见场景是 1)登陆重定向 2)从不同的入口进入公共页面,处理完成后返回到进入的页面。
下面链接会进入到公共上传页面,完成后返回activity/moke/toStep?activityId=234&tempStepI ...
下面查询中表名T_DT_HOMEWORK_ARRANGE 应该换成T_DT_HOMEWORK,由于疏忽导致表名写错了。
<select id="getBackHomeworks" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from T_DT_HOMEWORK_ARRANGE ha where ha.PROJECT_ID=#{projectId} and ha.HOMEWORK_STATUS=3 and ...
DISTINCT 排序问题
- 博客分类:
- sql
语句1查询出来的T_DT_HOMEWORK记录会重复,语句2的目的是去除重复的记录,并且保留重复记录中的第1条(业务要求),但是数据库去除重复时任意保留重复中的一条,而不是保留第一条。
语句1
SELECT b.`RECOMMEND_ORG_CODE`,b.`CREATE_DATE`,b.`CREATOR_ID`, a.* FROM T_DT_HOMEWORK a,T_DT_HOMEWORK_AUDIT b WHERE a.ID = b.HOMEWORK_IDAND a.RECOMMEND_ORG_CODE LIKE '220221%'AND b.RECOMMEND_FLAG=1O ...
设计模式
1)代理模式
对原始类进行功能扩展,但是对外暴漏的接口不变。不改变原始类的功能,只是对功能进行补充。
spring mybatis 中SqlSessionTemplate 代理SqlSession,增加自动事务处理和自动close。
seam 扩展的EntityManager。
实现方式1,使用java.lang.reflect.Proxy.newProxyInstance
Proxy只能对接口生成代理类(动态生成class,比如$proxy13,会根据接口名称缓存,同样的接口只会生成一次class)。
public static Object newProxyI ...
svn客户端版本不一致问题
- 博客分类:
- svn
问题描述:
用小乌龟svn客户端在本地下载项目,然后在eclipse中导入已存在的项目(maven项目),后来又安装了svn插件,想直接在eclipse中更新项目,把项目share project时报如下错误,好像是版本不一致的问题。
org.apache.subversion.javahl.ClientException: Unsupported working copy formatsvn: This client is too old to work with the working copy at'D:\work' (format 31).You need to get a ne ...
1)跨平台性是java语言的原始特性
2)大多数通用解决方案都标准化,标准化意味着是从很多实践中提炼出来,然后又进一步在实践中推广。
标准化的基础是由大量参与者。
标准化是与跨平台性本质是一致的,都是对底层细节的抽象。
比如数据库操作在php中需要针对每种数据进行不同的代码,而java通过jdbc标准屏蔽了底层数据库细节,任何数据库操作都是基于统一的抽象进行的。
基于java平台构建大型系统的原因:
Java库所具有的深度和广度是转换到Java平台的一个主要动力,但Barroca还提到了其他原因。 市场:Java应用系统的市场非常庞大。所有的公司都知道Java技术,大多数公司 ...