Spring之依赖注入
我们通过配置文件完成一个servlet-service-dao的一个功能实现
这样实现有两个弊端:
1.需要在容器外面封装,不受Spring控制
2.如果多次调用这套逻辑,会导致创建很多次容器里面存放着独立的一套配置对象,十分浪费内存。
这要就要求userDao和userService在一个容器内,并且userDao在容器内部就要设置到userService内部。
这就是依赖注入(DI:dependency injection)
依赖注入:把一个对象或值设置到容器中对象的属性上
方式一:set方法
在bean标签内部使用property标签配置,name是JavaBean的属性名,和set方法相关,ref是引用对象(前面配过),value是普通对象
p命名标签:不推荐
属性:仅受set和get方法影响
方式二:有参构造
在bean标签内部使用constructor-arg标签配置,name是JavaBean的属性名,和set方法相关,ref是引用对象(前面配过),value是普通对象
注入list:
User类及其配置文件:
UserServiceImpl类及其配置文件:
UserServlet类及其配置文件:
结果:
引入其他配置文件:标签