【Spring学习03】Spring简单入门实例

本文博客地址:http://blog.csdn.net/soonfly/article/details/68498742 (转载请注明出处)

国际惯例,从一个简单的例子入门,轻松了解依赖注入。
拿之前提到的场景:
假设我们开发了一套管理系统,每收到一笔订单后,系统调用notifyservice.sendMessage给客户发送订单成功邮件。有天老板(也有可能是产品)突然要改个需求:将原来的给客户发送邮件功能改为发手机短信。你无需改动任何代码,只是在配置中将“发送器”配置成“手机发送器”,就能完成工作。

一、创建工程

这里我们选择Dynamic Web Project(动态web项目),当然也可以选择普通的Java Project。
这里写图片描述

在创建的过程中,我们给source folder增加一个config目录用于放置配置文件。在开发中,要养成归类的习惯。

二、添加Spring及相关组件

按照《02、从官网获取Spring》下载组件后,将目录lib下的jar包拷入工程。
因为spring依赖log4j.jar、commons-logging.jar两个组件,所以需要将这两个组件相关的jar(共4个)拷入工程。点此直接下载所有组件

这里写图片描述

三、写业务逻辑

代码结构如下:
这里写图片描述

接口 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元

本文博客地址:http://blog.csdn.net/soonfly/article/details/68498742 (转载请注明出处)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值