Bean的命名及其实例化

Spring IoC容器的代表是org.springframework.beans包中的BeanFactory接口,org.springframework.context包下的ApplicationContext接口扩展了BeanFactory,主要是再提供了与Spring AOP继承、国际化处理、时间传播及提供不同层次的context实现(如针对Web应用的WebApplicationContext)。


IoC容器到底是怎么工作的呢?以xml来分析下

1.准备配置文件,配置文件中有Bean配置的元数据
2.由IoC容器进行解析元数据,IoC根据BeanDefinition进行实例化、配置及组装Bean。
3.实例化IoC容器,由客户端实例化容器,获取需要的Bean。


Bean的几种命名方式:
一:不用id,只注明是哪个类
二:指定id,但必须在IoC容器中是唯一的
三:有name无id,name为标识符
四:有name有id,name为别名,id为标识符
五:有多个name,第一个为标识符,其余为别名,多个name用,、;分割。

另外在bean标签外可用<alias>标签来指定别名,别名唯一。


测试了一下用构造器来实例化Bean。

在空构造器时就类似这样:
<bean id = "bye2" class = "cn.javass.spring.chapter2.helloworld.byeImpl"></bean>
在带参数的构造器,就得价格<constructor-arg>标签。index表示位置(参数滴),value表示值,如:
<bean id = "bye" class = "cn.javass.spring.chapter2.helloworld.byeImpl">
    <constructor-arg index="0" value="Hello Spring!"/>
    <constructor-arg index="1" value="21"/>
</bean>


还可以使用静态工厂方式去实例化Bean,这种方式的好处就在于,除了指定class属性,还能用factory-method属性去指定用哪个放方法来实例化Bean,并且这一样可以指定方法参数。
方式,写个xml,<bean id = "bean1" class = "abc" factory-method = "method1">


依赖、关联、聚合、组合。我是这样理解这些的关系的。我依赖你(无血缘关系的前提下),这里的依赖不具有“拥有关系”,而是一种“相识关系”。关联就是有血缘关系,表现为”拥有关系“。聚合,弱关联,血缘关系不重。组合,强关联,嫡亲的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值