Spring有四种Bean封装机制

Spring有四种Bean封装机制:Bean Wrapper机制、Bean Factory机制、ApplicationContext机制、Web Context机制等,它们所对应配置文件的内容也是不同的。下面,我们就以基于Bean Factory机制实现的Spring的三种依赖注入模式为例,介绍一下Spring配置文件的基本内容。
     1、接口注入,示例代码如下:
public interface InterfaceB{
public Object doIt();
}
public class ClassC implements InterfaceB{
String str1;
public ClassC(String str1){
This. str1= str1;
}
public Object doIt(){
return "Hello,"+ strl+"!";
}
}
public class ClassA {
private InterfaceB clzB;
public Object doSomething(InterfaceB b) {
clzB = b;
return clzB.doIt();
}
………
}
该情况下的Spring配置文件:bean.xml的内容大致如下:
<beans>
<description>Interface Injection Sample</description>
<bean id="ClassC" <!--ClassC类的别名 -->
class="net.liyb.spring.qs.ClassC"> <!--ClassC类的别名所对应的类 -->字串3
<property name="str1"> <!-- 该属性名对应ClassC类的属性(名称一致) -->
<value>liyb</value> <!-- 该属性值将被绑定到ClassC类的对应属性(str1)上 -->
</property>
</bean>
<bean id="ClassA" <!-- ClassA类的别名 -->
class="net.liyb.spring.qs.ClassA"> <!--ClassA类的别名所对应的类 -->
<property name="clzB"> <!-- 该属性名对应ClassA类的属性(名称一致) -->
<ref local="ClassC"/> <!-- 该属性值将被绑定到ClassA类的对应属性(clzB)上,此处的属性值即"别名"为ClassC所对应的类的实例 -->
</property>
</bean>
</beans>
     2、设值注入,示例代码如下:
public class DIByConstructor {
private final DataSource dataSource;
private final String message;
………
字串8

public setDataSource(DataSource ds) {
this.dataSource = ds;
}
public setmessage(String msg) {
this.message = msg;
}
public getDataSource() {
return this.dataSource;
}
public getmessage() {
return this.message;
}
………
}
该情况下的Spring配置文件:bean.xml的内容大致如下:
<beans>
<description>Values Injection Sample</description>
<bean id="dataSource" <!-- JndiObjectFactoryBean类的别名 -->
class="org.springframework.jndi.JndiObjectFactoryBean"> <!-- JndiObjectFactoryBean类的别名所对应的类 -->
<property name="jndiName"> <!-- 该属性名对应JndiObjectFactoryBean类的属性(名称一致) -->
<value>java:comp/env/jdbc/sample</value> <!-- 该属性值将被绑定到JndiObjectFactoryBean类的对应属性(jndiName)上 -->
</property>
</bean>
<bean id="DIByConstructor" <!--DIByConstructor类的别名 -->
字串8


class="net.liyb.spring.qs.DIByConstructor"> <!--DIByConstructor类的别名所对应的类 -->
<property name="message"> <!-- 该属性名对应DIByConstructor类的属性(名称一致) -->
<value>HeLLo</value> <!-- 该属性值将被绑定到DIByConstructor类的对应属性(message)上-->
</property>
</bean>
<bean id="DIByConstructor" <!--DIByConstructor类的别名 -->
class="net.liyb.spring.qs.DIByConstructor"> <!--DIByConstructor类的别名所对应的类 -->
<property name="dataSource"> <!-- 该属性名对应DIByConstructor类的属性(名称一致) -->
<ref local="dataSource"/> <!-- 该属性值将被绑定到DIByConstructor类的对应属性(dataSource)上,此处的属性值即"别名"为dataSource所对应的类的实例-->
</property>
</bean>
</beans> 字串4
     3、构造子注入,示例代码见日志:"Spring核心技术学习总结"中的1.2.3节。此时对应的配置文件同"2、设值注入"中的配置文件是一样的,所以具体内容在此省略。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值