spring中的二种注入方式设值注入和构造注入简单例子

来源:互联网 发布:大数据与java区别 编辑:程序博客网 时间:2024/06/05 11:17

下面是一个spring注入的简单demo

建一个包为 com.lzyer.ouput下面接口

package com.lzyer.ouput;public interface IOutputGenerator {public void generateOutput();}

新建一个实现包com.lzyer.output.impl

package com.lzyer.ouput.impl;import com.lzyer.ouput.IOutputGenerator;public class CsvOutputGenerator implements IOutputGenerator{public void generateOutput() {System.out.println("This is csv ouputgenerator...");}}
src下applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xmlns:p="http://www.springframework.org/schema/p"        xmlns:aop="http://www.springframework.org/schema/aop"        xmlns:context="http://www.springframework.org/schema/context"       xmlns:jee="http://www.springframework.org/schema/jee"       xmlns:tx="http://www.springframework.org/schema/tx"        xmlns:task="http://www.springframework.org/schema/task"        xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd">     <bean id="csv" class="com.lzyer.ouput.impl.CsvOutputGenerator"/>      <!--             设置注入    <bean id="helper" class="com.lzyer.ouput.test.OutputHelper">       <property name="outputGenerator" ref="csv"></property>   </bean>   -->   <!-- 构造注入 -->   <bean id="helper" class="com.lzyer.ouput.test.OutputHelper">      <constructor-arg>         <ref bean="csv"/>      </constructor-arg>   </bean></beans>
新建一个包com.lzyer.ouput.test用来注入的类

package com.lzyer.ouput.test;import com.lzyer.ouput.IOutputGenerator;public class OutputHelper {IOutputGenerator outputGenerator;public void outputGenerator(){outputGenerator.generateOutput();}//构造注入public OutputHelper(IOutputGenerator outputGenerator){this.outputGenerator = outputGenerator;} /*设置注入  * public void setOutputGenerator(IOutputGenerator outputGenerator) {this.outputGenerator = outputGenerator;}*/}

测试类

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

没有强制规定使用哪种注入方式,设置注入使用方便简单,所以用得比较多




0 0
原创粉丝点击