Spring的依赖注入

7 篇文章 0 订阅

在JavaWeb开发的三层架构中,业务层接口对持久层方法进行封装,进一步的传递给web层使用,而在业务层对持久层的封装时,Spring容器的依赖注入发挥了很大作用,依赖注入大致分以下几类:

  • 对象的注入:
    我们知道,web层在调用业务层的方法时,无需关心业务层是怎么对持久层进行封装的,只需知道业务层的方法能完成什么业务,因此业务层在封装持久层对象时,可以用Spring的Bean容器进行依赖注入,来完成解耦

applicationContext.xml:
在这里插入图片描述

如上图,在Spring配置文件中,bean标签可以理解为一个类,也可以理解为一个对象,scpoe属性默认为singleton,表示这个类具有唯一的对象,在外部或者其他bean中引用其id时都只能获取到同一个对象,而如果scopeprototype时,则在外部每次调用getBean()方法时都会生成一个新的对象,每个bean都有其唯一标识id,在bean的子标签中,可以有许多的property标签,该例子中前一个bean代表DAO层的类对象,后一个bean代表业务层的对象,其属性property的name为业务层中注入的DAO层对象,在这之前,需要在业务层中声明一个DAO对象并设置其setter方法
在这里插入图片描述
而之后的ref属性则引用了上面DAO对象的id,这样就实现了在Spring容器中自动将DAO对象注入到业务层的对象中,实现web层与DAO层的解耦

  • 注入数据
    上面以JavaWeb的三层架构为例,介绍了Spring容器的Bean实现对象的依赖注入 ,下面介绍数据的注入,和上面对象一样,想要注入某个数据,只需要将ref属性改成value即可,而其name也就是该数据的名称
  • 下面我们类比以下以上的方法,如果想要注入一个数组怎么办呢,比如有一个List<String>数组,我们只需要在property标签的子标签中使用list标签,在其内部使用多个value标签即可
  • 如果想要实现map注入,则在map标签下使用多个entry标签 ,以此类推

简单来说,Spring的Bean容器,顾名思义就是储存各个类对象的地方,每个对象以bean标签的方式呈现,这个对象需要配置哪些属性,以及哪些数据,甚至哪些其他对象,都由配置文件决定,而在容器的外部程序中想要访问容器内的对象资源,则需要用getBean()方法:

        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService service = (UserService) context.getBean("userService");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值