spring中的设计模式
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架
那么spring中用到了那些设计模式呢?
a. 单例模式---------spring中两种代理方式,若对象实现了若干接口,spring使用jdk的java.lang。reflect.Proxy类代理。若目标对象没有实现任何接口,spring使用CGLIB生成目标类的子类。
此单例模式为非线程安全的。
b.模板方式模式------用来解决代码重复的问题。
比如:RestTemolate·JmsTemplate
c.工厂模式-------在工厂模式中,我们创建对象时不会对客户端暴露出创建逻辑,并且通过接口指向新创建的对象。Spring中用beanFactory来创建对象实例。
d.依赖注入---------贯穿于BeanFactory/ApplacationContext接口的核心理念。
**
单例模式
**定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
-
饿汉模式
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton (){
}
public static Singleton getInstance() {
return instance;
}
} -
懒汉模式(线程安全)
public class Singleton {
private static Singleton instance;
private Singleton (){
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}