spring 1 2 3早期都是与common-logging.jar
spring5.x默认整合的日志框架 logback log4j2(和log4j不太一样)
spring 5 整合log4j 引入log4jjar包 slf4j 日志门面,核心作用就是把默认的都干掉,使用log4j
引入log4jproperties配置文件增加了spring内部运行的日志信息
通过spring工厂及配置文件, 为所创建对象的成员变量赋值。
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注入。