上一节通过bean标签就能实现从容器中获取Bean对象,bean标签对Bean的容器化管理非常重要,其属性和作用见表5-1。
表5-1 bean标签
了解了bean的基本配置属性后,考虑这样一个场景,在某些对象实例化的时候进行初始化操作,例如通过构造函数或者设置属性值。以Product类为例,希望在初始化Bean时将对象的id和name属性进行初始化,这就用到了Spring的bean标签constructor-arg和property两个配置项。
Spring IoC容器注入依赖资源主要有以下两种基本实现方式:
(1)构造器注入:通过在bean定义中指定构造器参数进行注入,包括实例工厂方法参数注入(静态工厂方法参数不允许注入)。
使用constructor-arg指定构造函数初始化name和age属性值,具体如下:
通过ClassPathXmlApplicationContext容器获取配置的Bean实例:
运行结果如下:
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配置如下:
通过ClassPathXmlApplicationContext容器获取配置的Bean实例:
运行结果如下:
invoke method--setId
invoke method--setName
product=com.javadevmap.bean.Product@2db7a79b
到这里,可以看出constructor-arg和property两者均可实现对象属性的初始化,只是初始化的方式不同而已。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。