第一章 Spring简介与工厂设计模式
Spring 简介与工厂设计模式
引言
Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力。
Spring 框架不局限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 框架还是一个超级粘合平台,除了自己提供功能外,还提供粘合其他技术和框架的能力。
Spring 诞生的环境背景:EJB(Enterprise Java Bean)是重量级的框架。
重量级的框架带来两个问题
运行环境苛刻
代码移植性差
什么是 Spring?
Spring 是⼀个轻量级的 JavaEE 解决方案,整合众多优秀的设计模式。
轻量级的定义
对于运行环境没有额外要求的框架,代码移植性高:不需要实现额外接口。
JavaEE 的解决方案:
graph TB Spring-.->DAO Spring-.->Controller Spring-.->Service struct2-->Controller mybatis-->DAO DataBase subgraph JavaEE DAO Controller Service end
设计模式
Spring 框架中整合了以下设计模式:
工厂模式,代理模式,模板模式,策略模式
工厂设计模式
工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。
1 | User user = new User(); |
使用工厂设计模式主要的好处在于解耦合
耦合指代码间的强关联关系,⼀方的改变会影响到另⼀方
强耦合带来的问题:不利于代码维护;
注意:仅当这些产品具有共同的基类或者接口时,子类才能返回不同类型的产品,同时基类中的工厂方法还应将其返回类型声明为这一共有接口
简单:把接口的实现类,硬编码在程序中
1 | UserService userService = new UserServiceImpl(); |
通用工厂的使用方式
定义类型 (类)
通过配置文件的配置告知工厂
applicationContext.properties 中 key = value
通过工厂获得类的对象
Object ret = BeanFactory.getBean("key")
总结:
Spring 本质:工厂
ApplicationContext (applicationContext.xml)