Spring中的依赖检查

什么是依赖检查?

依赖检查主要用于自动装配中判断bean与装配到bean中的数据类型或对象类型是否能装配成功。

4种依赖检查模式:none、simple、objects和all,默认是none

现有java类

package cn.belle.test;

public class Student {
	private String name;
	private Job job;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Job getJob() {
		return job;
	}

	public void setJob(Job job) {
		this.job = job;
	}
}

package cn.belle.test;

public class Job {
	private String Jobname;

	public String getJobname() {
		return Jobname;
	}

	public void setJobname(String jobname) {
		Jobname = jobname;
	}
}

现在自动装配Student类

none:

	<bean id="Student" class="cn.belle.test.Student" autowire="byName" dependency-check="none">
	</bean>
none代表着不给Student类中任何属性赋值依然可以自动装配Student

simple:

	<bean id="Student" class="cn.belle.test.Student" autowire="byName" dependency-check="simple">
	<property name="name" value="ZW"></property>
	</bean>

检查Studnet类中的简单数据类型(即name属性)

object:

	<bean id="Student" class="cn.belle.test.Student" autowire="byName" dependency-check="objects">
	<property name="job" ref="Jobbean"></property>
	</bean>
	<bean id="Jobbean" class="cn.belle.test.Job"></bean>
检查对象类型
all:

	<bean id="Student" class="cn.belle.test.Student" autowire="byName" dependency-check="all">
	<property name="job" ref="Jobbean"></property>
	<property name="name" value="ZW"></property>
	</bean>
	<bean id="Jobbean" class="cn.belle.test.Job"></bean>
所有属性都检查

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
	default-dependency-check="all">

也可这样设置全局的依赖检查

看到这里你可能会有这样的疑问,如果我只是要单个属性被检查应该怎么做了?

Spring中提供了 @Required注解来解决这个问题

将Student类修改

package cn.belle.test;

import org.springframework.beans.factory.annotation.Required;

public class Student {
	private String name;
	private Job job;

	public String getName() {
		return name;
	}

	@Required
	public void setName(String name) {
		this.name = name;
	}

	public Job getJob() {
		return job;
	}

	public void setJob(Job job) {
		this.job = job;
	}
}

然后在配置文件中配置

<bean 
class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/>

或者

<context:annotation-config />


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值