• Spring使用Setter依赖注入


    一个简单的Spring例子来展示如何通过setter方法注入依赖项,最常用DI方法注入bean。

       1. IOutputGenerator

      接口和实现类  
    1 package faj.test.javademo.set;
    2 
    3 /**
    4  * Created by JiaGao on 2016/7/30.
    5  */
    6 public interface IOutputGenerator {
    7     void generateOutput();
    8 }
     1 package faj.test.javademo.set;
     2 
     3 /**
     4  * Created by JiaGao on 2016/7/30.
     5  */
     6 public class CsvOutputGenerator implements IOutputGenerator {
     7     @Override
     8     public void generateOutput() {
     9         System.out.println("This is Csv Output Generator");
    10     }
    11 }

       2. Helper类

    一个辅助类,之后使用Spring 来注入 IOutputGenerator。  
     1 package faj.test.javademo.set;
     2 
     3 public class OutputHelper {
     4     private IOutputGenerator outputGenerator;
     5     public void generateOutput() {
     6         outputGenerator.generateOutput();
     7     }
     8     //DI via setter method
     9     public void setOutputGenerator(IOutputGenerator outputGenerator) {
    10         this.outputGenerator = outputGenerator;
    11     }
    12 }

       3. Spring配置

    配置Bean在Spring配置文件,并引用Bean “CsvOutputGenerator” 到 “OutputHelper”,通过property 和 ref 标签。

    在这种情况下,Spring将通过setter方法注入Bean “CsvOutputGenerator” 到“OutputHelper”类,

    “setOutputGenerator(IOutputGenerator outputGenerator)”.  

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:context="http://www.springframework.org/schema/context"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xsi:schemaLocation="http://www.springframework.org/schema/beans
     6            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     7            http://www.springframework.org/schema/context
     8                http://www.springframework.org/schema/context/spring-context-2.5.xsd">
     9     <bean id="CsvOutputGenerator" class="faj.test.javademo.set.CsvOutputGenerator" />
    10 
    11     <bean id="OutputHelper" class="faj.test.javademo.set.OutputHelper">
    12         <property name="outputGenerator" ref="CsvOutputGenerator" />
    13     </bean>
    14 </beans>

       4. 执行结果

    载入一切东西,并运行它。  
     1 package faj.test.javademo.set;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 /**
     7  * Created by JiaGao on 2016/7/30.
     8  */
     9 public class App1 {
    10     public static void main(String[] args) {
    11         ApplicationContext context = new ClassPathXmlApplicationContext("faj/test/javademo/set/applicationContext.xml");
    12         OutputHelper output = (OutputHelper)context.getBean("OutputHelper");
    13         output.generateOutput();
    14     }
    15 }

       输出结果

    This is Csv Output Generator
     
  • 相关阅读:
    MongoDB自学(1)MongoDB4.0安装
    MongoDB自学(3)MongoDB文档操作
    MongoDB自学(2)创建删除数据库及集合
    vsftpd限制下载流量
    关于旧博客迁移到此博客开场白
    WPF DataTemplate與ControlTemplate
    ErlangC 最佳人力效益指标
    MahApps.Metro控件更換微軟視窗主題
    Erlang C 與M/M/N排隊模型
    WPF 正確理解ContentPresenter
  • 原文地址:https://www.cnblogs.com/faunjoe88/p/5721467.html
Copyright © 2020-2023  润新知