Spring XML配置文件中的重要元素

1.<beans>
    <beans>是Spring XML配置文件最顶层的元素,<beans></beans>中可以包含一个<description>和多个<bean>、<import>、<alias>
    beans的属性
    beans可以对其包含的bean进行统一的默认设置,主要属性有:
    default-lazy-init:默认false。标识是否对所有bean进行延迟初始化。
    default-autowire;取值为no、byName、byType、constructor或autodetect。默认值为no,标识全部bean用哪种默认绑定方式。
    default-dependency-check:取值为none、objects、simple或all,默认值none,即不做依赖检查。
    default-init-mothod:如果所有的<bean>都按照某种规则,都有同样名称的初始化方法,可以用这个属性指定这个初始化方法名,不用在每个<bean>上逐个指定。
    default-destroy-method:类似于default-init-mothod类似,如果所有的<bean>都按照某种规则使用相同的对象销毁方法,可以通过这个属性指定。
2.<description>
    在<description>中可以放置一些描述信息,一般情况下,改元素是省略的。
3.<import>
    当配置文件内容较多,为了方便管理,可以把配置文件按一定的规则拆成几个文件,在加载主配置文件是可以通过<import>元素引入所引来的配置文件。比如application-main.xml配置文件中的<bean>,依赖application-control.xml的中的某些<bean>。此时就可以在application-main.xml中通过<import>application-control.xml</import>引入application-control.xml。
4.<alias>
    通过<alias>元素可以给<bean>设置别名,为了减少输入。比如:有个<bean>的名字叫做dataSourceForMasterDatabase,可以通过 <alias name="dataSourceForMasterDatabase" alias="masterDataSource"/>设置别名masterDataSource,之后就可以通过这个别名来引用这个<bean>。
5.<bean>
    Spring的Xml配置文件中最基本,最重要的元素,用来定义一个业务对象。比如:

<bean id="Service" class="..impl.UserService">
</bean>

    id属性:
        指定改业务对象在Spring容器中的唯一标识。
    class属性:
        指定<bean>的类型
6.<constructor-arg>
    通过构造函数向被注入对象注入其所依赖的对象时,通过<constructor-arg>元素完成。例如:

<bean id="uService" class="..impl.UserService">
    <constructor-arg ref="userService1"/>
    <constructor-arg ref="userService2"/>
</bean>

   type属性:
       这个属性用来一个对象定义有多个构造函数注入的情况,例如有个类:

public class UserService {
	private String dependency1;
	private int dependency2;
	
	public UserService(String dependency) {
		this.dependency1 = dependency;
	}
	
	public UserService(int dependency) {
		this.dependency2 = dependency;
	}
	
	@Override
	public String toString() {
		return new ToStringBuilder(this)
		.append("dependency1", dependency1)
		.append("dependency2", dependency2).toString();
	}
}

以上情况,就需要通过type属性来指定通过哪个构造函数进行注入。

<bean id="myService" class="..UserService">
    <constructor-arg type="int">
	<value>11</value>
    </constructor-arg>
</bean>

index属性:

    当一个构造函数有多个注入对象时,需要通过index属性来控制注入对象的顺序,例如:

public class UserService {
	private String dependency1;
	private String dependency2;
	public UserService(String dependency1,String dependency2) {
		this.dependency1 = dependency1;
		this.dependency2 = dependency2;
	}
	...
	@Override
	public String toString() {
		return new ToStringBuilder(this) ➥
		.append("dependency1", dependency1) ➥
		.append("dependency2", dependency2).toString();
	}
}

通过index属性可以控制注入对象的顺序,例如:

<bean id="uService" class="..UserService">
	<constructor-arg index="1" value="11111"/>
	<constructor-arg index="0" value="22222"/>
</bean>

此时,22222就会注入给dependency1,而11111注入给dependency2。

7.<property>
    相对于通过<constructor-arg>来实现构造函数注入,<property>元素可以实现setter方法注入。
    name属性:
        <property>元素有一个name属性,用来指定该<property>将会注入的对象所对应的实例变量名称。之后通过value和ref属性或者内嵌的其他元素来指定具体的依赖引用或值。例如:

<bean id="uService" class="..UserService">
	<property name="userInfo1"/>
		<ref bean="UserInfo1"/>
	</property>
	<property name="userInfo2"/>
		<ref bean="userInfo2"/>
	</property>
</bean>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值