spring5学习笔记(一)引言

    技术2022-07-10  137

    引言

    1.EJB存在的问题

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

    2.什么是spring

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

    轻量级

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

    JavaEE 分层开发

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

    整合设计模式

    工厂代理模板策略 合理的使用了设计模式

    3 设计模式

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

    4 工厂模式

    4.1 什么是工厂设计模式

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

    4.2 简单工厂的设计

    如上

    4.3 通用的工厂设计

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

    4.4 通用工厂的使用方式

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

    5 总结

    spring的本质:工厂 ApplicationContext(applicationContext.xml)
    Processed: 0.010, SQL: 9