- 浏览: 146781 次
- 性别:
- 来自: 上海
最新评论
-
wuyafeng123:
秒杀活动设计思路 -
indiajohns:
非常感谢,很快解决了我的问题
jmesa查询条件中文的编码转换问题 -
yujiaao:
太好了,感谢啊!这行在我这好象不行:URLDecoder.de ...
jmesa查询条件中文的编码转换问题 -
michael_wong:
呵呵,找到啦。在这里有全部源码:http://ishare. ...
Maven权威指南 的simple-parent 工程源码 -
michael_wong:
我也在找啊
Maven权威指南 的simple-parent 工程源码
文章列表
Test.java方法dd重载
class Test{
public Test(){}
public void dd(String s1,String s2){
System.out.println(s1+":"+s2);
}
public void dd(String s1){
System.out.println(s1+":");
}
}
public static void main(String ...strings) throw ...
mock,利用spring的BeanPostProcessor接口,junit运行时mock会替换掉既有的对象mFundClient
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import com.common.facade.constants.SysRetCode ...
Soap文件转对象,用于Junit
- 博客分类:
- Junit soap
测试用类
package test.com.coverage.facade;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.junit.Assert;
import org.junit.Test;
import test.com.coverage.CoverageBase;
import com.common.facade.TransManageFacade;
import com.common.facade.bean ...
<resultMap id="BaseResultMap" type="com.transcore.common.dal.model.PaymentDO">
<id column="ID" property="id"/>
<result column="BUSINESS_CHANNEL" property="businessChannel"/>
<result column= ...
偶尔看到BTrace,必须记录一下
利用hotSpot虚拟机可以动态替换class的特点而完成的,可以对online的程序动态的改变类的行为(一般为加些打印日志),进而进行线上调试的一个工具。
使用方式:
1.jmap -histo:live [pid] 检查那个类实例特别多
2.定位代码
如果是HashTable的问题,那么就要定位出什么代码引起的
接下来自然要看看是什么代码往HashTable里疯狂的put数据,于是用神器btrace跟踪Hashtable.put调用的堆栈。
首先写btrace脚本TracingHashTable.java:
import com.sun.btra ...
insert into T_TRANSCORE_TRANS_EXPIRE ( TRANS_ID, EXPIRE_DATE ) values ( '000300',INTERVAL '1' MINUTE) .
这里有一个不好解决的问题,interval后面的 1, 的引号直接加非常困难,
调试过程中常报错:ORA-00917,缺少逗号,因为,ibatis处理后进来的是不带单引号的
需要用另外一种方式实现
<insert id="insertExpireInfo" parameterType="map">
insert into ...
知识点:
1.spring-data redis的正则表达式 如 以 "PV"开头的keySet
Set keySet=template.keys("PV*");
2.线程池执行策略使用,DiscardPolicy 超出抛弃
3.springMVC返回成功,Controller的方法添加注解@ResponseStatus(value = HttpStatus.OK)
4.独立访客,通过filter设置cookie,并检查来控制
java对象占用heap的大小
- 博客分类:
- java
一个对象占用的堆空间首先是和它有多少个成员变量直接相关
public class Sizeof
{
public static void main (String [] args) throws Exception
{
// Warm up all classes/methods we will use
runGC ();
usedMemory ();
// Array to keep strong references to allocated objects
final int c ...
批处理任务通过quartz控制执行的时候,如果有多个部署,就要避免部署的不同应用上的定时任务同时执行而导致的错误。
通过oracle的行锁,控制quartz的执行。
使用spring+quartz+ibatis
ibatis配置文件中里面的查询,如果发现存在对应的行被锁,直接抛出异常返回,知道当前任务正在执行
<select id="abatorgenerated_selectByExampleForUpdate" resultMap="abatorgenerated_SysRunParamResult" parameterClass=&q ...
竞拍活动设计思路
- 博客分类:
- java redis
临界资源放到redis里面:包括最新的商品价格,订单信息。
定时器间隔5秒执行,读取redis信息,并持久化---这里的redis不做持久化动作。
活动结束时,定时器先更新redis中竞拍商品状态,再执行真实下单操作。
竞拍资源在redis中的生命周期:
在管理控制台添加商品活动信息,信息包括加入活动开始结束时间,写入到redis。
活动开始前,读取redis保存的活动信息,提示活动未开始。
活动过程中,redis中更新商品的订单信息,商品价格;系统将redis中的信息同步到数据库,记录到临时订单表。---如果redis宕机,管理控制台需要一个定时器把临时订单表的数据更新 ...
秒杀活动设计思路
- 博客分类:
- redis filter java
filter过滤请求:如SessionId最后若干位字符串转成数字,对20取模,余为0的时候向后执行,否则return 失败;这样可以在filter这里过滤掉19/20的请求。
redis保存商品库存:利用redis的decr操作减小,拿到大于0的token才往Order系统发起下单
配置好下面的内容后,执行 run as -> tomcat7:run 或者tomcat6:run可以将maven的web应用在tomcat6/7里面运行 ,eclipse Indigo 版本默认tomcat:run是用tomcat6。
DelegatingFilterProxy cannot be cast to Filter
请在
settings.xml
<pluginGroups>
<pluginGroup>org.apache.tomcat.maven</pluginGroup>
</pluginGroups& ...
这里把网上两个列子结合起来,因为http://www.blogjava.net/SpartaYew/archive/2013/02/06/350630.html 这个例子我本地跑起来有点问题,而另外一个例子,不涉及到数据库访问。
这两个例子都是3.0.5的spring,我改成3.1.0以后,大多数spring配置文件头上的要改一下,springsecurity里面也有少量修改。
1.初始化数据库在dbinit里面,用oracle的 ->工具->导入表的方式执行
2.打包运行后访问http://localhost:8080/springSec/auth/login ...
Maven下的ibatis+struts2.3.15+spring3.1.0
Maven下的ibatis+struts2.3.15+spring3.1.0+Aop集成redis
Maven下集成到tomcat:run
项目邮件选择-run-> as-run configuration->maven build,新建一个maven build,设置base directory为项目的路径 workspacedir/redis,goals为tomcat:run启动maven项目,选择run as-maven build(或者debug as-maven bui ...
没有废话
先是BeanUtils的实现类型:
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import com.huateng.common.tools.ConvertTools;
import com.huateng.common.tools.subTools.form.P ...