Spring依赖注入

目录 依赖注入概念 将UserDao注入到UserService内部的方式 set注入方法改进 有参构造注入方…

目录

依赖注入概念

将UserDao注入到UserService内部的方式

set注入方法改进

有参构造注入方法

Bean的依赖注入的数据类型

集合的数据类型注入

引入其他配置文件(分模块开发)

Spring的重点配置


依赖注入概念

上面的缺点也很明显,是同时获取service和dao层的到时我们只想要service层,所以此时,需要依赖注入,把dao注入到service服务层

依赖注入(DependencyInjection):它是Spring框架核心IOC的具体实现。

在编写程序时,通过控制反转,把对象的创建交给了Spring,但是代码中不可能出现没有依赖的情况。 IOC解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍会调用持久层的方法。

那这种业务层(Service)和持久层(Dao)的依赖关系,在使用Spring之后,就让Spring来维护了。简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取

将UserDao注入到UserService内部的方式

构造方法和set方法

法1:set方法

在UserServiceImpl下创建userDao

在applicationContext.xml文件中配置

然后之前创建的UserController就可以启动了

如果直接new UserServiceImpl对象会报空指针异常的错,

因为useDao是不是通过spring容器来获取的,自然就是null值了

set注入方法改进

P命名空间注入本质也是set方法注入,但比起上述的set方法更加方便,首先需要引入p命名空间:

修改注入方式

是一个对象就用-ref,普通属性就不用

userController运行之后

有参构造注入方法

在applicationContext.xml文件中

userServiceImpl下

运行结果:

Bean的依赖注入的数据类型

上面的操作,都是注入引用Bean,除了对象的引用可以注入,普通数据类型,集合都可以在容器中进行注入。

注入数据的三种数据类型

  • 普通数据类型
  • 引用数据类型
  • 集合数据类型

普通数据注入,如在UserDao层注入两个普通数据类型(采用set方式注入)

在applicationContext.xml文件中,在配置dao中设置参数

在Usercontroller下

运行结果

集合的数据类型注入

在UserDaoImpl下

采用set注入方式,设置集合,提供对应得set方法

在applicationContext.xml下配置注入值

在UserController测试下

运行结果:

引入其他配置文件(分模块开发)

实际开发中,Spring的配置内容非常的多,这就导致Spring配置很繁琐且体积很大,所以可以将部分配置拆解到其他配置文件中,而且主配置文件通过import标签进行加载

语法格式:

Spring的重点配置

<bean>标签

  • id属性:在容器中Bean实例的唯一标识,不允许重复
  • class属性:要实例化的Bean的全限定名
  • scope属性:bean的作用范围,常用是Singleton(默认)和prototype

<property>标签属性注入

  • name属性:属性名称
  • value属性:注入的普通属性值
  • ref属性:注入的对象引用值

<list>标签

<map>标签

<constructor-arg>标签

<import>标签:导入其他的Spring的分文件

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/6130.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部