Spring通过构造方法依赖注入

Posted Wit_tang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring通过构造方法依赖注入相关的知识,希望对你有一定的参考价值。

使用Spring进行依赖,通过构造函数注入一个bean。

1. IOutputGenerator

接口和实现类
package com.yiibai.output;
 
public interface IOutputGenerator

	public void generateOutput();
package com.yiibai.output.impl;
 
import com.yiibai.output.IOutputGenerator;
 
public class JsonOutputGenerator implements IOutputGenerator

	public void generateOutput()
		System.out.println("This is Json Output Generator");
	

2. Helper类

一个辅助类,之后使用Spring 通过构造方法注入 IOutputGenerator。
package com.yiibai.output;

import com.yiibai.output.IOutputGenerator;

public class OutputHelper 
	IOutputGenerator outputGenerator;

	public void generateOutput() 
		outputGenerator.generateOutput();
	

	//DI via constructor
	public OutputHelper(IOutputGenerator outputGenerator)
		this.outputGenerator = outputGenerator;
	
	

3. Spring配置

请参阅下面的 Spring bean 配置,Spring 将通过构造函数注入上面的 “JsonOutputGenerator” 到 “OutputHelper” 类,“public OutputHelper(IOutputGenerator outputGenerator)“.

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<bean id="OutputHelper" class="com.yiibai.output.OutputHelper">
		<constructor-arg>
			<ref bean="JsonOutputGenerator" />
		</constructor-arg>
	</bean>
 
	<bean id="JsonOutputGenerator" class="com.yiibai.output.impl.JsonOutputGenerator" />

</beans>

4.执行结果

载入一切东西,并运行它。
package com.yiibai.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yiibai.output.OutputHelper;

public class App 
	public static void main(String[] args) 
		ApplicationContext context = new ClassPathXmlApplicationContext(
				"applicationContext.xml"); OutputHelper output = (OutputHelper)context.getBean("OutputHelper");
    	        output.generateOutput();
	

输出结果

This is Json Output Generator

以上是关于Spring通过构造方法依赖注入的主要内容,如果未能解决你的问题,请参考以下文章

装配SpringBean--依赖注入

Spring的依赖注入

Spring依赖注入的方式

Spring注入值得2种方式:属性注入和构造注入

Spring注入值得2种方式:属性注入和构造注入

Spring 面试题