<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ch_space的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ch_space</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ch_space]]></copyright><item><title><![CDATA[jvm内存]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/84739829</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/84739829</guid><author>ch_space</author><pubDate>Tue, 01 Sep 2015 14:13:19 +0800</pubDate><description><![CDATA[收藏自【http://www.cnblogs.com/dingyingsi/p/3760447.html】]]></description><category></category></item><item><title><![CDATA[spring事务管理源码分析]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/18767875</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/18767875</guid><author>ch_space</author><pubDate>Sat, 25 Jan 2014 14:46:59 +0800</pubDate><description><![CDATA[闲来无事，重新看了下spring事务管理源码，写个笔记。


1、TransactionTemplate

当需要在事务中执行一个DB操作时，执行：

transactionTemplate.execute(new TransactionCallback{
	public MyDO doInTransaction(TransactionStatus status){
		myDao.]]></description><category></category></item><item><title><![CDATA[CountDownLatch与CyclicBarrier]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/84490686</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/84490686</guid><author>ch_space</author><pubDate>Sun, 20 Oct 2013 14:20:02 +0800</pubDate><description><![CDATA[CountDownLatch与CyclicBarrier被设计用来进行一组线程协作工作，完成一个或多个阶段的任务，二者有什么区别与联系呢？
[b][size=large]1、CountDownLatch[/size][/b]
这个用来设置一个屏障点，这个屏障点有好几把锁，每把锁都被开开之后，主线程才能继续往下面执行。
一个李子：3个人去骑行，约定到某个地方集合吃饭，全部到之后老板才上菜。
...]]></description><category></category></item><item><title><![CDATA[linux运维]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/84460675</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/84460675</guid><author>ch_space</author><pubDate>Sat, 20 Jul 2013 22:45:31 +0800</pubDate><description><![CDATA[一个不错的linux运维网站[url]http://bbs.linuxtone.org/forum.php[/url]]]></description><category></category></item><item><title><![CDATA[CLOSE_WAIT&TIME_WAIT]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/84460670</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/84460670</guid><author>ch_space</author><pubDate>Sat, 20 Jul 2013 22:33:59 +0800</pubDate><description><![CDATA[1、TIME_WAIT与CLOSE_WAIT[url]http://blog.youkuaiyun.com/shootyou/article/details/6622226[/url]
2、消除tomcat服务器的TIME_WAIT[url]http://blog.youkuaiyun.com/shootyou/article/details/6579139[/url]]]></description><category></category></item><item><title><![CDATA[JVM GC调优]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/84421651</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/84421651</guid><author>ch_space</author><pubDate>Sun, 21 Apr 2013 23:55:32 +0800</pubDate><description><![CDATA[[b]1、基本概念[/b]
heap=young+old，不包括perm区
young=eden + from_survivor + to_survivor，实际可用的大小是eden + to_survivor
串行收集器-单cpu使用，相对高效
并行收集器-多cpu，吞吐量优先时使用 
并发收集器-多cpu，停顿时间优先时使用（web应用一般用这个） 

[b]2、基本JVM参数[...]]></description><category></category></item><item><title><![CDATA[数据模型设计]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/84419188</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/84419188</guid><author>ch_space</author><pubDate>Mon, 15 Apr 2013 11:49:51 +0800</pubDate><description><![CDATA[工作中soa之后，作为上层业务渠道，很少接触数据模型设计了，今天听了一节课，记录下。

1、概念模型-逻辑模型-物理模型
这个顺序从大学就开始教，实际上在很多人设计时，并没有严格按照这个顺序，直接到物理模型设计，导致后续模型的频繁改动，或者业务信息缺失。

2、概念模型
从业务逻辑出发，分析出主数据模型，主要是初步搞清楚业务中涉及的域内、域外实体，以及他们之间的大致关系

3、逻辑...]]></description><category></category></item><item><title><![CDATA[从日志看Spring启动过程]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83848423</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83848423</guid><author>ch_space</author><pubDate>Wed, 02 Mar 2011 15:16:19 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]
信息: Initializing Spring root WebApplicationContext
15:07:33,078  INFO ContextLoader:189 - Root WebApplicationContext: initialization started
15:07:33,109  INFO XmlWebApplicationContex...]]></description><category></category></item><item><title><![CDATA[Java RMI]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83802024</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83802024</guid><author>ch_space</author><pubDate>Sat, 25 Dec 2010 19:29:17 +0800</pubDate><description><![CDATA[RMI（remote method invoke）是Java实现透明远程调用的机制，客户端仅持有服务端的接口。RMI应用的两种写法：

[b]1、利用UnicastRemoteObject.exportObject()[/b]

server端：
[code=&quot;java&quot;]
public interface Business extends Remote {
	public void...]]></description><category></category></item><item><title><![CDATA[Spring 对RMI的支持]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83771908</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83771908</guid><author>ch_space</author><pubDate>Tue, 30 Nov 2010 17:20:21 +0800</pubDate><description><![CDATA[RMI是Java的标准远程调用方法，基于序列化机制实现。将一个组件发布为远程服务，允许客户端远程调用，组件需要满足以下条件：
1、服务接口要继承自java.rmi.Remote接口
2、服务实现类要继承自java.rmi.server.UnicastRemoteObject类
3、服务接口的返回方法全部都是基本类型，或实现了java.io.Serializable接口

对已经编写的组件...]]></description><category></category></item><item><title><![CDATA[两台linux文件拷贝]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83568696</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83568696</guid><author>ch_space</author><pubDate>Tue, 23 Mar 2010 14:49:29 +0800</pubDate><description><![CDATA[scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用ssh1,并且和ssh1使用相同的认证方式,提供相同的安全保证.与rcp不同的是,scp会要求你输入密码如果需要的话.
最简单的应用如下:
[code=&quot;java&quot;]scp 本地用户名@IP地址:文件名1 远程用户名@IP地址:文件名2[/code]
[本地用户名@IP地址:] 可以不输入,可能需要输入远程用户名所对应的...]]></description><category></category></item><item><title><![CDATA[阻止表单自动提交]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83518137</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83518137</guid><author>ch_space</author><pubDate>Wed, 16 Dec 2009 15:22:44 +0800</pubDate><description><![CDATA[表单自动提交的几种情况：
1）form中只有一个type=&quot;text&quot;的，在该文本框按回车键会引起form提交。
2）form中只要含有type=&quot;text&quot;的（无论几个）和一个type=submit的按钮，在任何一个文本框中回车键都会引起form提交。

如何处理：

1）如果表单需要正常的提交（同步提交，页面有刷新），又不想产生上述问题，可以对表单进行验证（在onsubmit中），...]]></description><category></category></item><item><title><![CDATA[重装系统后修复MySQL5.0]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83516702</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83516702</guid><author>ch_space</author><pubDate>Sat, 12 Dec 2009 22:20:45 +0800</pubDate><description><![CDATA[今天系统死了，重装后mysql服务启动不了了，因为我把安装mysql的目录的一个空格去掉了，就去把my.ini的baseDir,dataDir改了一下，原以为没问题了，可是还是1067错误，后来google一把，讲得乱七八糟，便利用MySQLInstanceConfig.exe重新配置，结果找不到：my-template.cnf，又把my.ini拷过去重命名为my-template.ini，这次又...]]></description><category></category></item><item><title><![CDATA[Hibenate关联策略探讨]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83497836</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83497836</guid><author>ch_space</author><pubDate>Fri, 04 Dec 2009 09:41:37 +0800</pubDate><description><![CDATA[[size=medium]以下涉及的几个问题是在实际开发中经常或碰到的，大家也渐渐形成了所谓的“最佳实践”，不过还存在一些问题，没有好的方案，请大家一起探讨。
1、是否延迟加载
    为了保持较好的性能，通常我们会选择延迟加载关联对象，这一点在one-to-many、many-to-one中体现最深。然而在下列情形中我们可能需要立刻加载关联的对象：
有一个Topic表，一个Comment表...]]></description><category></category></item><item><title><![CDATA[Hibernate集合过滤、子查询]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83496761</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83496761</guid><author>ch_space</author><pubDate>Tue, 01 Dec 2009 21:50:41 +0800</pubDate><description><![CDATA[来自：[url]http://blog.youkuaiyun.com/javacoffe/archive/2007/08/09/1733579.aspx[/url]
1、集合过滤：
     对于一个已经加载的Customer对象，假设对它的orders集合采用延迟加载机制，那么当调用customer.getOrders().iterator()时，Hibernate就会初始化orders集合，然后到数据...]]></description><category></category></item><item><title><![CDATA[Velocity资源加载方式]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83494655</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83494655</guid><author>ch_space</author><pubDate>Thu, 26 Nov 2009 19:35:25 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]
input.encoding = UTF-8
output.encoding = UTF-8

#使用file方式加载资源
resource.loader = file
file.resource.loader.class=org.apache.velocity.runtime.resource.loader.FileResourceLoader
file...]]></description><category></category></item><item><title><![CDATA[分页查询总行数缓存策略]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83484466</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83484466</guid><author>ch_space</author><pubDate>Sat, 31 Oct 2009 16:21:15 +0800</pubDate><description><![CDATA[[size=medium]文章有点长。。。[/size]

以前看到的分页模型大同小异，都是一个POJO结合各类视图技术实现的，但对于每次查询，都要计算总页数（统计记录总行数），对于记录数较少、并发不高的系统来讲，这似乎没有什么问题，但对于高并发，记录行数很多（千万级）的情况，每次的统计行数就要花费不少时间。我这里尝试着设计了一个行数缓存和一个简单的分页POJO（跟传统的POJO大同小异），请...]]></description><category></category></item><item><title><![CDATA[文件下载]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83481777</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83481777</guid><author>ch_space</author><pubDate>Fri, 23 Oct 2009 12:45:01 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]
response.addHeader(&quot;Content-Disposition&quot;, &quot;attachment; filename=&quot; +response.encodeURL(downloadfile));
[/code]
attachment表明这是一个附件，浏览器不会寻找合适的应用程序打开文件，而是显示另存为对话框，如果这个值设成inline，则无论怎样浏览器都会...]]></description><category></category></item><item><title><![CDATA[Spring MVC—处理异常]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83481593</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83481593</guid><author>ch_space</author><pubDate>Thu, 22 Oct 2009 21:02:22 +0800</pubDate><description><![CDATA[这里讲的异常处理是指：用户发送一个HTTP请求，服务器处理请求过程中发生了诸如数据库异常、文件IO异常、类型不匹配异常等等，那么就要转向一个友好的异常提示页面。
Spring为我们提供了一个异常解析器接口：org.springframework.web.servlet.HandlerExceptionResolver
我们只要实现
public ModelAndView resolveExc...]]></description><category></category></item><item><title><![CDATA[Spring MVC—拦截请求]]></title><link>https://blog.youkuaiyun.com/ch_space/article/details/83481581</link><guid>https://blog.youkuaiyun.com/ch_space/article/details/83481581</guid><author>ch_space</author><pubDate>Thu, 22 Oct 2009 20:41:35 +0800</pubDate><description><![CDATA[一般情况下，对来自浏览器的请求的拦截，是利用Filter实现的，这种方式可以实现Bean预处理、后处理。
Spring MVC的拦截器不仅可实现Filter的所有功能，还可以更精确的控制拦截精度。
Spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器，继承此类，可以非常方便的实现自己...]]></description><category></category></item></channel></rss>