java_spring_使用XML装配bean

1. 使用XML装配bean

Xml是最常见的spring应用系统配置源。

几种spring容器都支持使用xml装配bean,包括:

XmlBeanFactory

ClassPathXmlApplicationContext

XmlWebApplicationContext

① 基本语法为:

<beans>

<bean id="" scope="" class=""></bean>

<bean id="" scope="" class=""></bean>

</beans>

 

② Scope选项

<bean scope=”singleton” id="userService" class="com.service.UserService"/>

singleton:单例 默认值

prototype:原型(每次获取bean时创建新的对象)

request:一次请求有效(java web开发)

sessionsession级有效(java web开发)

global-session:webspring容器ApplicationContext一致。

 

③ 初始化与销毁

有两种方法:

1.在配置文件中配置:

<beans>

<bean id="" scope="" class="" init-method="init" destory-method="destory"></bean>

</beans>

这样在装载此bean对象之后会立马执行init函数,销毁时会执行destory函数。

2.在类中使用注解:

不需要在配置中配置,直接在init方法前面添加注解:

@PostConstruct

    public void init(){

    }

    @PreDestory

    public void destory(){

    }

 

④ 通过set方法注入依赖

即可以通过在配置中添加property属性,使用反射机制,就会调用类相应的set方法将值注入进去,可以是值也可以是集合类,甚至是其他的bean

<bean id="userService" class="com.service.UserService">

<property name="name">

<value>张三</value>

</property>

<property name="address">

<list>

<value>北京</value>

<value>上海</value>

</list>

</property>

<property name="name" ref="另一个bean的名字"/>

</bean>

集合可以是string[],listsetmap等等。

如果是list<对象>,则配置时:

<list>

<ref bean="对象对应的beanid"/>

<ref bean="对象对应的beanid"/>

</list>

如果是set<对象>,则配置时:

<set>

<ref bean="对象对应的beanid"/>

<ref bean="对象对应的beanid"/>

</set>

如果是map<string,对象>,则配置时:

<map>

<entry key="字串" value-ref="对象对应的beanid"/>

<entry key="字串" value-ref="对象对应的beanid"/>

</map>

 

⑤ 继承

<bean id="userService" parent="另一个beanid" class="com.service.UserService">

</bean>

添加一个parent属性,初始化数据时会先调用父类的方法。

 

⑥ 通过构造函数注入

<bean id="userService" class="com.service.UserService">

<constructor-arg index="0" type="java.lang.String"value="张三"/>

<constructor-arg index="1" type="int"value="25"/>

</bean>

 

⑦ 自动装配bean的属性值

5种方式:

 

 

Master类有个成员变量,Dog m_dog;

因为没有配namem_dogpropety,因此通过autowirebeans中去找,如果是byType,则找到类型一样的就装载进去,如果是byName则找beanidm_dog的对象进行装载。

 

注:当一个接口有多个实现类时,使用注解装载bean时会报错,需要使用Qualifier强行指定使用哪个实现类,如:

@Resource

@Qualifier("userServiceBean")  

private IUserService userService;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值