【Spring】簡單入門例項
阿新 • • 發佈:2018-12-21
從一個簡單的例子入門,輕鬆瞭解依賴注入。
假設我們開發了一套管理系統,每收到一筆訂單後,系統呼叫notifyservice.sendMessage給客戶傳送訂單成功郵件。有天老闆(也有可能是產品)突然要改個需求:將原來的給客戶傳送郵件功能改為發手機簡訊。你無需改動任何程式碼,只是在配置中將“傳送器”配置成“手機發送器”,就能完成工作。
一、建立工程
這裡我們選擇選擇普通的Java Project。
二、新增Spring及相關元件
三、寫業務邏輯
程式碼結構如下:
介面 NotifyService.java
public interface NotifyService { void sendMessage(String message); }
實現 NotifyServiceByCellPhoneImpl.java
public class NotifyServiceByCellPhoneImpl implements NotifyService{
@Override
public void sendMessage(String message) {
System.out.println("傳送手機簡訊:"+message);
}
}
實現 NotifyServiceByWeixinImpl.java
public class NotifyServiceByWeixinImpl implements NotifyService{ @Override public void sendMessage(String message) { System.out.println("傳送微信簡訊:"+message); } }
訂單類 Order.java
public class Order { private NotifyService notifyservice; /*notifyservice不是在內部new()出來的, 而是通過指定方法傳進來的,也就是我們說的注入。這裡是setter注入*/ public void setNotifyservice(NotifyService notifyservice) { this.notifyservice = notifyservice; } public Order(){} public Order(NotifyService notifyservice) { this.notifyservice = notifyservice; } /*訂單支付完成後,系統通知老闆*/ public void PaySuccess(){ notifyservice.sendMessage("客戶張鐵蛋完成訂單2017079657付款,共人民幣:97.5元"); } }
四、配置xml
<?xml version="1.0" encoding="UTF-8" ?>
<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.xsd">
<bean id="notify" class="twm.spring.start.NotifyServiceByWeixinImpl" />
<bean id="order" class="twm.spring.start.Order" >
<!-- 配置注入NotifyServiceByCellPhoneImpl的例項化物件 -->
<property name="notifyservice" ref="notify"/>
</bean>
</beans>
五、呼叫:
Test.java檔案:
public class Test {
public static void main(String[] args) throws Exception {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
Order order=ctx.getBean("order",Order.class);
order.PaySuccess();
}
}
輸出:
傳送微信簡訊:客戶張鐵蛋完成訂單2017079657付款,共人民幣:97.5元
老闆如果要求我們用手機簡訊傳送通知,我們就到配置檔案beans.xml中進行修改:
<bean id="notify" class="twm.spring.start.NotifyServiceByWeixinImpl" />
修改為
<bean id="notify" class="twm.spring.start.NotifyServiceByCellPhoneImpl" />
再次執行輸出:
傳送手機簡訊:客戶張鐵蛋完成訂單2017079657付款,共人民幣:97.5元