Spring的两种常见的注入

spring有多种依赖注入的形式,下面仅介绍spring通过xml进行IOC配置的方式:

 1, Set注入

    需要配置的bean.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
  "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
	<beans>
		<description>Spring quick start</description>
		
		<bean id="student" class="org.heinrich.action.Student">
			<property name="user" ref="user">
				
			</property>
		</bean>
		<bean id="user" class="org.heinrich.action.User"></bean>
	</beans>	

两个实体类  Student  , User

package org.heinrich.action;

public class User {
	
	public void read(){
		
		System.out.println("I am reading Book of Thinking Java");
	}

}

package org.heinrich.action;

public class Student {
	
	private User user;

	public void testDi(){
		
		user.read();
	}
	
	

	public void setUser(User user) {
		this.user = user;
	}
	
	

}

  测试SpringTest类

  package org.heinrich.action;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {
	
	public static void main(String[] args) {
		
		ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
		Student student = (Student)ctx.getBean("student");
		
		student.testDi();
		
	}

}

显示的结果

I am reading Book of Thinking Java

其中bean.xml还可以配置成

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
  "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
	<beans>
		<description>Spring quick start</description>
		
		<bean id="student" class="org.heinrich.action.Student">
			<property name="user">
		重点:		<bean id="user" class="org.heinrich.action.User"></bean>
			</property>
		</bean>
		
	</beans>	

2,   构造器注入


主要代码Student类需要给一个构造方法,参数是需要注入的类型

package org.heinrich.action;

public class Student {

	private User user;

	public Student(User user) {
		super();
		this.user = user;
	}

	public void testDi() {

		user.read();
	}

}

然后配置bean.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
  "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
	<beans>
		<description>Spring quick start</description>
		
		<bean id="student" class="org.heinrich.action.Student">
			<constructor-arg ref="user"/>
		</bean>
		<bean id="user" class="org.heinrich.action.User"></bean>
	</beans>	

bean.xml还有另外一个配置方式

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
  "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
	<beans>
		<description>Spring quick start</description>
		
		<bean id="student" class="org.heinrich.action.Student">
			<constructor-arg>
				<bean id="user" class="org.heinrich.action.User"></bean>
			</constructor-arg>
		</bean>
	
	</beans>	

测试结果

I am reading Book of Thinking Java



你可能感兴趣的:(Spring的两种常见的注入)