spring5学习笔记(一)引言

引言

1.EJB存在的问题

重量级的框架,运行环境苛刻+代码移植性差——spring的产生

2.什么是spring

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

轻量级

1.对于环境没有额外的要求
2.代码移植性好,不需要事先额外的接口

JavaEE 分层开发

许多框架各自解决某一层的问题
spring是一个解决方案,对每一个层次都有自己的解决方案。

spring5学习笔记(一)引言_第1张图片

整合设计模式

  1. 工厂
  2. 代理
  3. 模板
  4. 策略
    合理的使用了设计模式

3 设计模式

  1. 广义概念:面向对象设计中,解决特定问题的经典代码
  2. 狭义概念:GOF4人帮定义的23种设计模式:工厂、适配器、装饰器、门面、代理、模板…

4 工厂模式

4.1 什么是工厂设计模式

  1. 通过工厂类创建对象
  2. 好处:解耦合
    耦合:一方改变影响另一方
    耦合问题:不利于diamante维护
    简单:把接口的实现类硬编码在程序中。new
  3. 解耦方法:
    (1)将实现类替换为工厂的get对象方法,在工厂的方法中new对象。(在工厂类还是有耦合)
    (2)在工厂类中通过反射创建对象。在这一步,实际上这个全限定类名还是硬编码,修改还是要修改代码。
    spring5学习笔记(一)引言_第2张图片
    (3)用配置文件解决这个全限定类名的修改问题。properties是一个特殊的map,可以用get获取内容。
    spring5学习笔记(一)引言_第3张图片
    最后使用反射+配置文件实现了最后一步的解耦。如果需要更改为新的实现类,增加这个类,然后修改配置文件即可。

4.2 简单工厂的设计

如上

4.3 通用的工厂设计

如果只用简单的工厂,工厂会越来越多。
不需要为每一类对象都设计一个工厂方法。冗余很多,所以需要通用的工厂方法。
根据共性设计出通用的getbean方法。通过参数传入全限定类名。
spring5学习笔记(一)引言_第4张图片
返回时进行强制类型转换,得到想要的对象
spring5学习笔记(一)引言_第5张图片

4.4 通用工厂的使用方式

  1. 定义类型(类)
  2. 通过配置文件的配置告知工厂全限定类名(properties)
  3. 通过工厂获得类的对象(工厂通过反射创建)

5 总结

  1. spring的本质:工厂 ApplicationContext(applicationContext.xml)

你可能感兴趣的:(后端开发)