- 博客(59)
- 资源 (2)
- 收藏
- 关注
原创 spring mvc 时间格式的输入输出
https://blog.csdn.net/u012410733/article/details/72773095
2018-07-16 18:49:21
467
原创 Log4j输出格式控制--log4j的PatternLayout参数含义
做项目被log4j的输出格式化参数搞烦了,索性把API的相关部分大致翻译一下,原文参见http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html 摘自:http://blog.csdn.net/guoquanyou/article/details/5689652参数说明例子%...
2014-11-25 23:20:57
188
原创 yield() join() sleep() wait() 区别
除了yield,其他方法都有阻塞效果,所以必须处理InterruptedException,因此在多线程任务中最好实现中断策略。1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常 比如有两个线程同时执行(没有S...
2014-05-15 11:30:40
196
原创 4.CXF安全访问之单向SSL或者双向SSL(三)
还是使用上一篇文章中生成的四个证书文件,以Tomcat 为运行环境来部署支持SSL的CXF应用。首先在Tomcat的conf目录中找到server.xml文件,需要在该文件中加上SSL配置,如下 <Connector SSLEnabled="true" acceptCount="100" algorithm="SunX509" disa...
2013-06-03 14:24:36
264
原创 3.CXF安全访问之SIGN_ENC(二)
上一篇讲了如何使用UsernameToken的方式来安全访问CXF,这篇将讲解使用证书的签名和加密技术来达到安全访问的目的。 1.证书的签名和加密的原理在CXF官网关于WS-SECURITY的章节中首先介绍了,签名和加密的原理,图和文字很形象,就不再多说了。下面附上本文中使用的生成证书的代码: 1. 生成别名和密码为 "serverkey"/"myPassword"的服...
2013-05-30 15:38:21
285
原创 2.CXF安全访问之Http Basic Auth(一)
CXF涉及安全方面主要有三个途径: 最简单的方式是使用Http Basic Auth,就是WSS4J的UsernameToken实现方式,优点是简单易用,缺点是每次都会在MESSAGE里面传密码,安全性低。Transport level(传输层内)的实现Https。CXF samples里面有一个例子wsdl_first_https, 很详细的讲了怎么使用。对MESSAGE进行加...
2013-05-29 14:34:34
985
原创 1.CXF的Hello World
1.定义SEIpackage com.demo.cxf.helloword;import java.util.List;import javax.jws.Oneway;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;@WebService(t...
2013-05-28 16:14:07
101
原创 任务取消与关闭(interrupt)
虽然Thread.stop和suspend等方法提供了线程终止的机制,但由于存在一些严重的缺陷,因此应该避免使用。可以说Java并没有提供任何机制来安全地终止线程。但它提供了中断(Interrupt),这时一种协作机制,能够使一个线程终止另一个线程的当前工作。提到中断,我们就不得不说明一下Thead.interrupt方法:调用interrupt并不意味着立即停止目标线程正在进行的工作,而只是...
2013-04-12 16:15:56
327
原创 Executor框架(线程池)
Executor基于生产者-消费者模式,提交任务(Runnable)的操作相当于生产者(生成待完成的工作单元),执行任务的线程相当于消费者(执行完这些工作单元)。每当看到下面这种形式的代码时:new Thread(runnable).start()并且你希望获得一种更灵活的执行策略,请考虑使用Executor来替代Thread。 1. 线程池在线程池中执行任务比为每个...
2013-04-12 15:10:14
86
深入剖析tomcat容器的乱码问题
http的本质还是socket,所以底层传输的还是字节流(不要深究到二进制层面),既然是字节流,那么肯定会涉及到编码和解码.乱码的原因大家肯定都知道,也很简单,那就是编码和解码的格式不一致。既然知道了根源,那么我们是否能从这个角度来解决问题?是的,只要你保证前台编码和后台解码的格式一样的时候,就肯定不会出现乱码了。 下面要用到一些例子,这里先给出程序: index.js...
2012-12-12 11:49:10
220
原创 23.桥梁模式(Bridge Pattern)
1.定义将抽象和实现解耦,使得两者可以独立地变化 2.例子定义看不明白?没关系,我将通过下面这个例子来阐述桥梁的概念。 小时候我们都用蜡笔画画,一盒蜡笔12种颜色。一开始我都是用最小号的蜡笔画个太阳公公、月亮婆婆足够了。后来开始画一些抽象派的作品,就得换中号的了,要不然画个背景都要描半天,好一盒中号的也是12种颜色。再后来我开始转向豪放派,中号就有些捉襟见肘了,只好换大号的...
2012-11-26 17:09:04
140
原创 22.享元模式(Flyweight Pattern)
1.定义使用共享对象可有效地支持大量的细粒度的对象。是对象池技术的重要实现方式。 2.享元模式的使用场景系统中存在大量的相似对象。细粒度的对象都具备较接近的外部状态,而且内部状态与环境无关,也就是说对象没有特定身份。需要缓冲池的场景。请看例子程序,学生和学校的关系: package _22FlyweightPattern;/** * 班级类...
2012-11-26 14:55:01
97
原创 21.解析器模式(Interpreter Pattern)
1.定义给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。属于行为类模式。 2.解释器模式的使用场景重复发生的问题可以使用解释器模式:比如根据用户输入的公式进行加减乘除四则运算,但是他们输入的公式每次都不同,有时是a+b-c*d,有时是a*b+c-d,等等等等个,公式千变万化,但是都是由加减乘除四个非终结符来连接的,这时我们就可以使用...
2012-11-23 14:29:59
194
原创 20.状态模式(State Pattern)
1.定义当一个对象内在状态改变时,允许其改变行为,这个对象看起来像改变了其类。状态模式的核心是封装。 2.要解决的问题-过多的if-else状态判断对象如何在每一种状态下表现出不同的行为?在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。但是对复杂...
2012-11-22 14:02:07
115
原创 19.访问者模式(Visitor Pattern)
话说有一个银行,有三个窗口,但是每个窗口的智能都是一样的,即都能办理所有的业务。因此每位来银行办理业务的人只要排队就是了,排到你了,就向业务员说明你要办理的业务,然后业务员根据你的业务选择不同的单据,打开不同的账本…… 业务员此时典型的工作流程是: if (service instanceof Saving){ //存款 ........
2012-11-19 16:28:25
104
原创 18.备忘录模式(Memento Pattern)
引子俗话说:世上难买后悔药。所以凡事讲究个“三思而后行”,但总常见有人做“痛心疾首”状:当初我要是……。如果真的有《大话西游》中能时光倒流的“月光宝盒”,那这世上也许会少一些伤感与后悔——当然这只能是痴人说梦了。但是在我们手指下的程序世界里,却有的后悔药买。今天我们要讲的备忘录模式便是程序世界里的“月光宝盒”。所谓备忘录模式就是在执行某个命令之前先将当前状态备份,执行完,在某种情况下需...
2012-11-16 15:01:52
117
原创 17.门面模式(FacadePattern)
1.定义要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式注重“统一的对象”,也就是提供一个访问子系统的接口,除了这个接口不允许有任何访问子系统的行为发生。门面对象是外界访问子系统内部的唯一通道,不管子系统内部是多么杂乱无章,只要有门面在,就可以做到“金玉其外败絮其中”。 2.门面模式的使用场景 为一个复杂的...
2012-11-15 15:23:27
99
原创 16.观察者模式(ObserverPattern)
1.定义定义对象之间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖它的对象都会得到通知并自动更新观察者模式也叫发布订阅模式 2.观察者模式的使用场景关联行为场景。需要注意的是,关联行为是可拆分的,而不是“组合”关系。也就是说观察者的生命周期不由被观察者管理。事件多级触发场景。跨系统的消息交换场景,如消息队列的处理机制。相信大家都看过无间道,那么应该对...
2012-11-14 16:08:31
92
原创 15.组合模式(Composite Pattern)
1.定义将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式又叫做树形模式。其在项目开发中涉及树的结构都会想到组合模式。 2.引子我们计算机的文件系统就是一个典型组合模式的使用,文件分为两种:一、文件夹,二、文件。其中文件夹可以包含文件,也可以包含子文件夹。如果我们用资源管理器打开某个文件夹,发现它展开在左侧的是一个树形结构...
2012-11-13 17:35:15
100
原创 14.迭代器模式(Iterator Pattern)
1.定义提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。目前是一个没落的模式,基本上没人会单独写一个迭代器,除非是产品性质的开发。 2.类型行为类模式 3.类图 4.迭代器模式的使用场景迭代器模式是与集合共生共死的,一般来说,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像java中的Collection,List、Set、...
2012-11-13 14:27:45
90
原创 13.适配器模式(Adapter Pattern)
1.定义将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式又叫做变压器模式。 2.适配器模式的应用场景适配器模式应用的场景只要记住一点就足够了:你有动机修改一个已经投产中的接口时,适配器模式可能是最适合你的模式。比如系统扩展了,需要使用一个已有或新建立的类,但这个类又不符合系统的接口,怎么办?使用适配器模式。...
2012-11-12 17:24:21
127
原创 12.策略模式(Strategy Pattern)
1.定义定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式是一种比较简单的模式,也叫做政策模式。 2.策略模式的使用场景多个类只有在算法或行为上有不同的场景算法需要自由切换的场景需要屏蔽算法规则的场景下面看一个例子:zip和gzip文件格式相信大家都很熟悉,它们是两种不同的压缩格式,我们今天就来对一个目录或文件实现两种不同的压缩格式。 ...
2012-11-12 13:51:08
116
原创 11.装饰模式(Decorator Pattern)
1.定义动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更灵活。 2.装饰模式的使用场景需要扩展一个类的功能,或给一个类增加附加功能需要动态地给一个对象增加功能,这些功能可以动态的撤销需要为一批的兄弟类进行改装或者加装功能,当然是首选装饰模式3.例子我买了一辆车,这辆车会跑。那么用代码抽象上面这句话就成了这样: package...
2012-11-08 15:57:20
93
原创 10.责任链模式(Chain of Responsibility)
1.定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。责任链模式是一种对象的行为模式。 2.通用代码这个模式很简单,也许看完通用代码就能理解了:package _10ChainOfResponsibility;public abstract class Handler ...
2012-11-07 16:15:57
96
原创 9.命令模式(Command Pattern)
1.定义将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式属于行为模式。 2.命令模式的使用场景只要我们认为是命令的地方就可以采用命令模式,比如在GUI开发中,一个按钮的点击是一个命令;触发-反馈机制的处理等。 3.命令模式的三个角色Receive接收者角色:该角色就是干活的角色,命令...
2012-11-07 14:45:02
153
原创 cloud foundry安装Caldecott
0.安装rubyinstaller-1.9.3下载地址:http://rubyinstaller.org/downloads1.安装RubyGemsgem update --system2.安装vmcgem install vmc3.安装DevKit下载地址:http://rubyinstaller.org/downloads参考:https://github.co...
2012-11-06 23:33:38
97
原创 8.中介者模式(Mediator Pattern)
1.定义:用一个中介对象封装一系列的对象交互,中介者使个对象不需要显示的相互作用,从而使其耦合松散,而且可以独立地改变他们之间的交互。 2.解析:这段话不明白没关系,我们先来看这样的一个场景:公司有1个领导,9个职员,有一天领导要去公司的图书馆找一本书,领导一看图书馆的这本书已经被借走了,他就去问职员1有没有拿走,如果没有就继续问职员2……终于领导找到了他想看的书。在这个例...
2012-11-01 15:57:44
111
原创 7.原型模式(Prototype Pattern)
1.定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式的核心是一个clone方法,通过该方法进行对象的拷贝(注意浅拷贝和深拷贝的区别)。 2.原型模式的使用场景:资源优化场景:类初始化需要消耗非常多的资源,这个资源包括数据、硬件资源等。性能和安全要求的场景:通过new产生一个对象需要非常繁琐的数据准备或访问权限。一个对象多个修改者的场景:一...
2012-11-01 10:54:23
93
原创 6.代理模式(Proxy Pattern)
1.定义:为其他对象提供一种代理以控制这个对象的访问。代理模式也叫委托模式,它是一项基本设计技巧。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了代理模式。 2.代理模式的三个角色定义:Subject抽象主题角色:抽象主题类可以是抽象类,也可以是接口,是一个最普通的业务类型定义,无特殊要求。RealSubject具体主题角色:也叫被委托角色、被...
2012-10-30 16:09:55
111
原创 5.建造者模式(Builder Pattern)
1.定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2.注意事项:建造者模式关注的是零件类型和装配工艺(顺序),这是它与工厂方法模式最大不同的地方,虽然同为创建类模式,但是注重点不同。建造者模式和工厂方法模式非常相像,以下是它们之间的区别:建造者模式最主要的功能是基本方法的调用顺序安排,也就是这些基本方法已经实现了,通俗的讲就是零件的装...
2012-10-26 17:06:33
103
原创 4.模板方法模式(Template Method Pattern)
定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 例子:继承Thread实现一个多线程类时,我们重写了run方法,然后调用start方法,start方法定义在父类中,会调用子类中的run方法,是模板方法模式的典型应用。 特点:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。 ...
2012-10-25 16:33:22
60
原创 3.抽象工厂模式(Abstract Factory)
一、简介定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图: 图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属的等级结构,就可以唯一的确定这...
2012-10-25 12:00:41
124
原创 2.工厂方法模式(Factory Method)
定义:定义一个用于创建对象的接口,让子类来决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。它是简单工厂模式的一种延伸。 例子:Spring中ApplicationContext的getBean方法就是典型的工厂方法模式。 工厂方法的通用代码: 产品抽象类 package _2FactoryMethodPattern;public abst...
2012-10-25 11:12:16
101
原创 1.单例模式(Singleton)
package _1Singleton;public class Singleton { private static Singleton singleton = new Singleton(1); private Singleton(int i) { System.out.println(i); } /** * Solution 1 ...
2012-10-11 13:37:02
67
原创 validate
内建约束注解应用目标运行时检查Hibernate元数据效果@Length(min=, max=)property (String)check if the string length match the rangeColumn length will be set to max@Length(min=, max=)property (Stri...
2012-09-16 21:20:09
82
原创 @ModelAttribute使用详解
1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。 (1)@ModelAttribute注释void返回值的方法 @Controller...
2012-09-12 17:32:10
1919
原创 spring3.0MVC注解(附实例)(备用,来自网络)
0.提示1) Spring发行版本附带了PetClinic 示例,它是一个在简单的表单处理的上下文中, 利用了本节中说明的注解支持的Web应用程序。 可以在“samples/petclinic”目录中找到PetClinic 应用程序。 2) 另外一个建立在基于注解的Web MVC上的示例应用程序...
2012-09-11 17:24:19
114
原创 方法形参如何绑定 URL参数(一)
1.处理方法入参,如何绑定URL参数 (1)按参数名匹配绑定 例如: listBoardTopic(int topicId):和 topicId URL 请求参数绑定; listBoardTopic(int topicId,String boardName):分别和 topicId、boardName URL 请求参数...
2012-09-11 14:08:34
417
原创 Hibernate方言hibernate.dialect设置
为数据库属性hibernate.dialect设置正确的 org.hibernate.dialect.Dialect子类. 如果指定一种方言, Hibernate将为上面列出的一些属性使用合理的默认值, 为你省去了手工指定它们的功夫.表 4.8. Hibernate SQL方言 (hibernate.dialect) RDBMS方言 DB2org.hibern...
2012-09-01 00:32:03
147
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人