spring配置文件详解
2008-11-06 15:56
393 查看
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类的别名所对应的类 --> 字串5
<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;
………
字串2
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> 字串7
3、构造子注入,示例代码见日志:"Spring核心技术学习总结"中的1.2.3节。此时对应的配置文件同"2、设值注入"中的配置文件是一样的,所以具体内容在此省略。
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类的别名所对应的类 --> 字串5
<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;
………
字串2
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> 字串7
3、构造子注入,示例代码见日志:"Spring核心技术学习总结"中的1.2.3节。此时对应的配置文件同"2、设值注入"中的配置文件是一样的,所以具体内容在此省略。
相关文章推荐
- Spring项目实践(四)--- Spring MVC配置文件详解
- spring配置文件详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- spring配置文件详解(模版本)
- 详解Spring加载Properties配置文件的四种方式
- Spring Boot属性配置文件详解
- (六)Spring详解——使用注解替代配置文件
- Spring Boot系列教程四:配置文件详解properties
- Spring配置文件中 注解标签 详解
- Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
- spring配置文件详解
- 详解Spring-boot中读取config配置文件的两种方式
- Spring 配置文件部分详解
- Spring配置文件详解
- Spring配置文件详解 - applicationContext.xml文件路径
- spring applicationContext.xml 配置文件 详解
- Spring 2.5配置文件详解
- spring applicationContext.xml 配置文件 详解