Spring教程 - Spring Setter注入

2018-01-09 19:06 更新

Spring教程 - Spring Setter注入


Spring Setter注入是最流行和簡單的依賴注入方法,它將通過setter方法注入依賴關系。

在Setter依賴注入中,IoC容器注入一個Java Bean的依賴通過JavaBean風格的setter方法。

Java Bean的setters公開了IoC容器可以管理的依賴關系。

在實踐中,Setter注射是最廣泛使用的注射機制,它是一個最簡單的IoC機制來實現(xiàn)。

例子

假設我們定義了以下接口和Java bean。

package com.www.o2fo.common;
public interface Printer
{
  public void print();
}

之后,我們將創(chuàng)建CSV打印機,將輸出CSV格式的數(shù)據(jù)。CSV打印機實現(xiàn)打印機接口。

package com.www.o2fo.common;
public class CSVPrinter implements Printer
{
  public void print(){
    System.out.println("Csv Output Printer");
  }
}

然后是時間創(chuàng)建JSON打印機將輸出JSON格式的消息。JSON打印機還實現(xiàn)了打印機接口。

package com.www.o2fo.common;
public class JSONPrinter implements Printer
{
  public void print(){
    System.out.println("Json Output Printer");
  }
}

通過使用Spring依賴注入(DI),我們可以在Spring配置XML文件中聲明Java Bean。 然后在xml文件中連接Java Bean。這樣Spring可以使我們的打印機松散耦合到不同的打印機實現(xiàn)。

通過使用Spring依賴注入(DI),我們可以在Spring配置XML文件中聲明Java Bean。 然后在xml文件中連接Java Bean。這樣Spring可以使我們的打印機松散耦合到不同的打印機實現(xiàn)。...

package com.www.o2fo.common;
public class OutputHelper
{
  Printer outputGenerator;
  public void print(){
    outputGenerator.print();
  }
  public void setOutputGenerator(Printer outputGenerator){
    this.outputGenerator = outputGenerator;
  }
}


XML配置

然后我們要創(chuàng)建一個Spring bean配置文件并在此處聲明所有Java對象依賴關系。

<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.www.o2fo.common.OutputHelper">
    <property name="outputGenerator" ref="csvPrinter" />
  </bean>
  <bean id="csvPrinter" class="com.www.o2fo.common.CSVPrinter" />
  <bean id="jsonPrinter" class="com.www.o2fo.common.JSONPrinter" />
</beans>

以下兩個bean標簽在Spring配置xml文件中聲明了兩個Java Bean。

在聲明之后,我們可以使用id值來引用Java Bean。

<bean id="csvPrinter" class="com.www.o2fo.common.CSVPrinter" />
<bean id="jsonPrinter" class="com.www.o2fo.common.JSONPrinter" />

以下xml bean標記聲明了 OutputHelper 和通過使用屬性標記通過setter注入注入依賴。

<bean id="outputHelper" class="com.www.o2fo.common.OutputHelper">
  <property name="outputGenerator" ref="csvPrinter" />
</bean>

在上面的代碼中,我們只是注入一個“com.www.o2fo.common.CSVPrinter"bean通過setter方法setOutput Generator轉(zhuǎn)換為“Output Helper"對象。



加載配置和運行

以下代碼顯示如何使用加載配置并運行它。

package com.www.o2fo.common;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
  public static void main(String[] args) {
    ApplicationContext context = new ClassPathXmlApplicationContext(
        "SpringBeans.xml");
    OutputHelper output = (OutputHelper)context.getBean("outputHelper");
      output.print();
  }
}

輸出


Download Java2s_Spring_Setter_Injection.zip
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號