首页 理论教育 Java服务端Bean定义

Java服务端Bean定义

时间:2023-11-22 理论教育 版权反馈
【摘要】:上一节通过bean标签就能实现从容器中获取Bean对象,bean标签对Bean的容器化管理非常重要,其属性和作用见表5-1。以Product类为例,希望在初始化Bean时将对象的id和name属性进行初始化,这就用到了Spring的bean标签constructor-arg和property两个配置项。Spring IoC容器注入依赖资源主要有以下两种基本实现方式:构造器注入:通过在bean定义中指定构造器参数进行注入,包括实例工厂方法参数注入。

Java服务端Bean定义

上一节通过bean标签就能实现从容器中获取Bean对象,bean标签对Bean的容器化管理非常重要,其属性和作用见表5-1。

5-1 bean标签

978-7-111-61011-3-Part02-10.jpg

了解了bean的基本配置属性后,考虑这样一个场景,在某些对象实例化的时候进行初始化操作,例如通过构造函数或者设置属性值。以Product类为例,希望在初始化Bean时将对象的id和name属性进行初始化,这就用到了Spring的bean标签constructor-arg和property两个配置项。

Spring IoC容器注入依赖资源主要有以下两种基本实现方式:

(1)构造器注入:通过在bean定义中指定构造器参数进行注入,包括实例工厂方法参数注入(静态工厂方法参数不允许注入)。

使用constructor-arg指定构造函数初始化name和age属性值,具体如下:

978-7-111-61011-3-Part02-11.jpg

通过ClassPathXmlApplicationContext容器获取配置的Bean实例:

978-7-111-61011-3-Part02-12.jpg

978-7-111-61011-3-Part02-13.jpg

运行结果如下:

invoke method--Product(int id,String name)(www.xing528.com)

beanNoConstructorArg=com.javadevmap.bean.Product@13eb8acf

beanHasConstructorArg=com.javadevmap.bean.Product@51c8530f

(2)setter注入:通过setter方法进行注入。

使用Property注入name和age属性值,XML配置如下:

978-7-111-61011-3-Part02-14.jpg

通过ClassPathXmlApplicationContext容器获取配置的Bean实例:

978-7-111-61011-3-Part02-15.jpg

运行结果如下:

invoke method--setId

invoke method--setName

product=com.javadevmap.bean.Product@2db7a79b

到这里,可以看出constructor-arg和property两者均可实现对象属性的初始化,只是初始化的方式不同而已。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈