spring学习笔记(三)spring5.x与日志框架整合+注入

    技术2025-04-06  29

    整合日志框架

    为什么

    与日志框架整合,日志框架可以再控制台中输出spring框架运行过程中的一些重要信息。比如spring创建对象等重要操作。好处:便于了解spring框架的运行过程,利于程序的调试。

    spring如何整合日志框架

    spring 1 2 3早期都是与common-logging.jar

    spring5.x默认整合的日志框架 logback log4j2(和log4j不太一样)

    spring 5 整合log4j 引入log4jjar包 slf4j 日志门面,核心作用就是把默认的都干掉,使用log4j

    引入log4jproperties配置文件

    增加了spring内部运行的日志信息

    注入(injection)

    什么是注入

    通过spring工厂及配置文件, 为所创建对象的成员变量赋值。

    为什么需要注入

    set方法可以实现赋值,但是存在耦合。修改时要修改代码。 注入,使用配置文件为成员变量赋值。 后续修改变量直接修改配置文件,不需要重新编译,重新部署。

    注入的原理分析(简易版)

    读取bean标签,获取id和类型,通过反射构造对象。读取property获取这个对象的属性和要赋的值,翻译成对象的set方法,对成员变量赋值。

    set注入

    针对不同成员变量,property标签要嵌套其他标签。

    数组

    set:自动去重 set不一定要用value标签,具体情况具体考虑

    list集合:有序,可重复。最主要的是外面的list,里面根据情况

    map:外面map,里面一个entry一个键值对

    6. property:特殊的map,key value都是string。外面props,里面prop。只能字符串 所以简化了 7. date:自定义类型转换器 8. 用户自定义类型 使用bean标签创建对象赋值,没有id属性,因为只有这里调用一次。 存在的问题: 配置文件代码冗余,注入dao对象多次创建,浪费JVM内存。 更好的方法: 先创建出userdao对象,并且给一个id。然后使用ref bean标签进行引用。 9. set注入的简化方式 属性替换标签,value属性智能简化8种基本类型+String 用户自定义类型。ref属性替换ref标签 命名空间p的简化:就是property的缩写。

    构造注入

    注入:通过配置文件为成员变量复制 set注入:调用set方法通过配置文件为成员变量赋值 构造注入:调用构造方法,通过配置文件,为成员变量赋值。 property代表的就是set方法的方式 构造方法用constructor-arg。里面是一样的。

    1.要提供构造方法 2.配置文件通过constructoer-arg标签,标签的对数和构造参数一致,顺序一致。

    构造方法重载

    参数个数不同,可以通过标签数量区分。 参数个数相同,要加类型来区分了。 参数个数相同,类型也相同?不可能的,这个语法报错,根本不是重载。

    总结

    未来用set更多

    构造注入麻烦,重载spring框架底层大量应用了set注入。
    Processed: 0.012, SQL: 9