首页知识 Spring中如何配置bean

Spring中如何配置bean

在讲解Spring中bean的配置之前,首先需要学习两个概念:IOC(反转控制)和DI(依赖注入)。IOC(Inversion of Control)的思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,而应用了IO…

在讲解Spring中bean的配置之前,首先需要学习两个概念:IOC(反转控制)和DI(依赖注入)。IOC(Inversion of Control)的思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接收资源。DI(Dependency Injection)是IOC的另一种表现形式,即组件以一些预先定义好的方式(例如:setter方法)接收来自如容器的资源注入。本文主要讲解基于XML文件的方式配置bean,如下图所示。

操作方法

【步骤01】

我们在XML文件中配置bean时,bean的id用于标识容器,是唯一的。若id没有指定,则Spring自动将全限定名作为bean的名字。id可以指定多个名字,名字之间可以用逗号、分号或空格分隔。class为类的全类名,由包名和类名组成。我们使用xml文件配置bean时,要求实体类必须要有一个无参构造方法,若没有则会启动报错。

【步骤02】

属性注入方式,是通过setter方法为bean注入属性。我们在bean的配置文件中使用property元素中的name属性标识需要注入的bean属性,然后在类中使用setXxx()的方法将属性注入,因此name属性的值必须和setter方法中大写字母开头的名字要一致。如使用setName2()方法,则配置文件中name属性的值必须为name2。

【步骤03】

上述步骤是通过属性注入依赖的方式,下面我们讲解通过构造器注入依赖的方式。通过构造方法来注入bean的属性值或依赖对象,它保证了Bean实例在实例化后就可以使用。构造器注入在<constructor-arg>元素里声明属性,没有name属性,按照构造方法默认的顺序或指定顺序来注入。如下图所示,可以看到属性注入的顺序完全和构造方法传参的顺序一致。

【步骤04】

我们编写测试代码,在测试代码的main()方法中获取Cat对象,并打印输出该对象。ApplicationContext在初始化上下文时就实例化所有单例的的Bean,用于获取Cat对象。打印输出默认的是调用Cat类的toString()方法,因此在创建类时需要重写toString()方法。

【步骤05】

接下来我们在使用构造器注入时添加index属性用于标识注入的顺序,如下图所示。

【步骤06】

使用构造器注入属性值可以指定参数的位置和参数的类型,用以区分重载的构造器。上述步骤指定了参数的位置,下面我们再为Cat方法创建一个有参构造,传入4个参数,如下图所示,而相应的bean的配置增加了type属性,用于标识字段的类型。

【步骤07】

我们在使用构造器注入时,不仅可以用value属性,也可以使用value子元素。使用双标记的value子元素,中间包裹的位置填入相应的值即可,如下图所示。

【步骤08】

如果我们在使用xml配置bean时,需要注入的属性中含有特殊字符,那么直接将特殊字符写在配置文件中是错误的。若字面值包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起来,基本数据类型及其封装类、String等类型都可以采取字面值注入的方式。

特别提示

只有字面值包含特殊字符,才使用&lt;![CDATA[]]&gt;包裹起来。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zs/3314.html
上一篇java文件怎么运行java程序运行方法
下一篇 Spring如何在XML文件中指定Bean之间的引用关系
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部