- 浏览: 342003 次
- 性别:
- 来自: 北京
最新评论
-
bbls:
有用有用有用
java-jvm-jstack-(监视器和锁的概念) -
王新春:
小侠有点帅哦 写道此流怎么关闭新春这个实现 可以不关闭的,哈哈 ...
源码剖析之java.io.ByteArrayOutputStream -
小侠有点帅哦:
此流怎么关闭新春
源码剖析之java.io.ByteArrayOutputStream -
cumt168:
写的很好为什么初始化参数,年轻代-Xmn10M def new ...
jvm之内存申请过程分析 -
ronin47:
应该是跟共享域名思路差不多,根据cookie的key作判断
跨域:一种通过服务端解决跨域的实现
文章列表
Spring 事务:是spring 通过 aop实现的一套事务管理功能,可以定义隔离级别,传播行为,回滚规则,事务超时,是否只读。
1、隔离级别 对应mysql 几乎都是定义为 可重复读
2、传播特性则不同,不同的业务场景,使用的特性非常不同
spring 事务的创建的时间点:通过aop 在调用需要开启事务的方法前开启,方法结束后提交事务(准确的说还要看事务的传播行为),或者抛出异常回滚事务
事务传播行为(Transaction Propagation Behavior):定义当前方法的事务和调用方事务的关系,比如:可以加入到调用方的事务,也可以重新开启事务,亦或开始事务 ...
spring bean & id
- 博客分类:
- spring
首先澄清一个概念:
同名bean:多个bean 有相同的 name 或者 id,称之为同名bean
<bean> 的id 和 name的区别
id和name都是spring 容器中bean 的标识符。
id: 一个bean的唯一标识 , 命名格式必须符合XML ID属性的命名规范
name: 可以用特殊字符,并且一个bean可以用多个名称:name=“bean1,bean2,bean3” ,用逗号或者分号或者空格隔开。如果没有id,则name的第一个名称默认是id
spring 容器如何处理同名bean?
...
特殊说明:
ContextLoaderListener: 创建的容器为父容器(applicationContext.xml)
DispatcherServlet:创建的容器为子容器(appServlet-context.xml)
1、问题:同一个类可以被子容器和父容器同时生成实例吗?
答案:可以,并且是不同的实例
2、问题:如果一个类子容器(appServlet-context.xml)有实例,父容器(applicationContext.xml)也有实例,ge
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉 ...
命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化操作,实现对请求排队或记录请求日志,以及支持可撤销的操作。
模式分析:
1.命令模式的本质是对命令进行封装,将发出命令的责任和执 ...
学习参考:
http://www.cnblogs.com/hegezhou_hot/archive/2010/12/04/1896471.html
定义:是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.
重点:
1、原型模式主要用于对象的复制,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节。
2、使用原型模式创建对象比直接new一个对象在性能上要好的多,因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非 ...
建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
提供一种“封装机制”来隔离“复杂对象的各个部”的变化,从而保持系统中的“稳定构建算法”而不随需求的变化而变化。
解决的问题:
主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。
使用场景:
1、需要生成的对象具有复杂的内部结构。
2、需要生成的对象内部属性本身相互依赖。
基于这两个要求,Builder或者ConcreteBuild ...
代理模式:
1、表现为了控制对真实对象的访问,提供一个代理的角色,客户端通过调用代理实现访问真实对象。
2、表现为 对真实对象的操作进行拦截,再调用真实对象前后,代理对象做一些操作
特点:
1、代理对象和真实对 ...
策略模式:
属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
角色划分:
抽象策略角色 ...
模板方法模式:
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
模板方法的实现需要语言层面的支持:比如继承,多态。
关注点:
1、抽象类实现一个算法的不变的部分,并将可变的行为留给子类来实现;抽象类一般用来控制执行流程,是主逻辑;各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。
2、具体类:具体类的定位是实现算法中的部分个性化的逻辑,即逻辑分解的子逻辑。
3、控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展。
模式中的角色:
抽象类(Abstra ...
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
特点:
1、多个产品系列
工厂方法一般是一个产品系,抽象工厂是多个
2、抽象工厂接口
提供获取多个获取产品的方法(产品簇)
3、具体工厂
工厂方法:只生产一种产品;抽象工厂:生产一个产品族
产品簇:是指位于不同产品等级结构中,功能相关联的产品组成的家族。一般是位于不同的等级结构中的相同位置上。对于每一个产品族,都有一个具体工厂。而每一个具体工厂创建属于同一个产品族,但是分属于不同等级结构的产品。
工厂方法与抽象工厂的区别和联系:
工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。 ...
工厂方法模式(FACTORY METHOD):是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品。
工厂方法(Factory Method)模式的实现:定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
工厂方法模式是简 ...
背景:
在什么样的情况下我们应该记得使用工厂模式呢?大体有两点:
1.在编码时不能预见需要创建哪种类的实例。
2.系统不应依赖于产品类实例如何被创建、组合和表达的细节
这个模式本身很简单而且使用在业务较简单的情 ...
Bridge:桥接设计模式
用意:
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
抽象化:存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。
实现化:抽象化给出的具体实现,就是实现化。
脱耦:所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间 ...
核心入口功能定位:
HttpServletBean:完成的是<init-param>配置元素的依赖注入
FrameworkServle:t完成的是容器上下文的建立
DispatcherServlet:完成的是SpringMVC具体编程元素的初始化策略。
spring-web 和spring-webmvc:
spring-web provides core HTTP integration, including some handy Servlet filters, Spring HTTP Invoker, infrastructure to integrate with ot ...