Spring 简介与工厂设计模式

引言

Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力。

Spring 框架不局限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 框架还是一个超级粘合平台,除了自己提供功能外,还提供粘合其他技术和框架的能力。

Spring 诞生的环境背景:EJB(Enterprise Java Bean)是重量级的框架。

重量级的框架带来两个问题

  • 运行环境苛刻

  • 代码移植性差

什么是 Spring?

Spring 是⼀个轻量级的 JavaEE 解决方案,整合众多优秀的设计模式。

轻量级的定义

对于运行环境没有额外要求的框架,代码移植性高:不需要实现额外接口。

JavaEE 的解决方案:

设计模式

Spring 框架中整合了以下设计模式:

工厂模式,代理模式,模板模式,策略模式

工厂设计模式

工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。

1
2
User user = new User();
UserDAO userDAO = new UserDAOImpl();

使用工厂设计模式主要的好处在于解耦合

耦合指代码间的强关联关系,⼀方的改变会影响到另⼀方

强耦合带来的问题:不利于代码维护;

注意:仅当这些产品具有共同的基类或者接口时,子类才能返回不同类型的产品,同时基类中的工厂方法还应将其返回类型声明为这一共有接口

简单:把接口的实现类,硬编码在程序中

1
UserService userService = new UserServiceImpl();

通用工厂的使用方式

  1. 定义类型 (类)

  2. 通过配置文件的配置告知工厂applicationContext.properties 中 key = value

  3. 通过工厂获得类的对象Object ret = BeanFactory.getBean("key")

总结:

Spring 本质:工厂

ApplicationContext (applicationContext.xml)