08_Spring实现action调用service,service调用dao的过程

【工程截图】

【PersonDao.java】

package com.HigginCui.dao;

public interface PersonDao {
    public void savePerson();
}

【PersonDaoImpl.java】

package com.HigginCui.dao;

public class PersonDaoImpl implements PersonDao{
    @Override
    public void savePerson() {
        System.out.println("save Person...");
    }
}

【PersonService.java】

package com.HigginCui.Service;

public interface PersonService {
    public void savePerson();
}

【PersonServiceImpl.java】

package com.HigginCui.Service;

import com.HigginCui.dao.PersonDao;

public class PersonServiceImpl implements PersonService{
    private PersonDao personDao;
    //personDao的set方法
    public void setPersonDao(PersonDao personDao) {
        this.personDao = personDao;
    }
    @Override
    public void savePerson() {
        this.personDao.savePerson();
    }
}

【PersonAction.java】

package com.HigginCui.action;

import com.HigginCui.Service.PersonService;

public class PersonAction {
    private PersonService personService;
    //personService的set方法
    public void setPersonService(PersonService personService) {
        this.personService = personService;
    }
    public String savePerson(){
        this.personService.savePerson();
        return "saveOK...";
    }
}

【applicationContext.xml】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:aop="http://www.springframework.org/schema/aop"
       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
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

    <bean id="personDao" class="com.HigginCui.dao.PersonDaoImpl"></bean>

    <bean id="personService" class="com.HigginCui.Service.PersonServiceImpl">
        <property name="personDao">
            <ref bean="personDao"/>
        </property>
    </bean>

    <bean id="personAction" class="com.HigginCui.action.PersonAction">
        <property name="personService">
            <ref bean="personService"/>
        </property>
    </bean>
</beans>

【testPerson.java】

package com.HigginCui.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.HigginCui.action.PersonAction;

public class testPerson {
    @Test
    public void test(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        PersonAction personAction=(PersonAction) context.getBean("personAction");
        String str=personAction.savePerson();
        System.out.println(str);
    }
}

【运行结果】

save Person...
saveOK...

【小结】

实现了完全的面向接口编程,在代码端没有必要关心一个接口的实现类是什么。

时间: 2024-10-11 14:52:03

08_Spring实现action调用service,service调用dao的过程的相关文章

java中Action层、Service层和Dao层的功能区分

Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊.动态.子查询都可以.但是无论多么复杂的查询,dao只是封装增删改查.至于增删查改如何去实现一个功能,dao是不管的. 总结这三者,通过例子来解释: Action像是服务员,顾客点什么菜,菜上给几号桌,都是ta的职责: Service是厨师,ac

Android---56---Android应用调用Web Service/号码归属地查询

使用Android应用调用Web Service 需要工具: ksoap2-android 下载地址:http://pan.baidu.com/s/1jGL6b10 build path将ksoap2-android 添加到项目工程中 先将ksoap2-android 包导入 libs目录下,右键build path -> add to build path 点击项目工程名,右键 build path -> configure build path 在ksoap2-android这个包前面打上

android 中activity调用远程service中的方法之 aidl的使用

服务端:只有服务,没有界面 1.编写interface文件,复制到 .aidl 文件中,并去掉其中的public 等修饰符.系统会自动在gen目录下生成对应的java文件  (对应本地调用中的接口文件) 2.编写service,其中内部类的自定义bind 只需要继承Stub即可.(本地调用则需要继承Bind 并实现 interface接口) 1 public class PayService extends Service { 2 3 @Override 4 public IBinder onB

Java 调用Web service 添加认证头(soapenv:Header)

前言 有时候调用web service 会出现 Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]:  No Security Header found 这样的错误. 以在 soapui 调用的结果来看, 会出现如下的返回 出现这种错误的原因 是webservice 的服务端需要提供 soap 认证的表头. 举例来说, 可能需要加上如下的认证头: <soapenv:Header> <

Java 调用Web service 加入认证头(soapenv:Header)

前言 有时候调用web service 会出现 Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]:  No Security Header found 这种错误. 以在 soapui 调用的结果来看, 会出现例如以下的返回 出现这种错误的原因 是webservice 的服务端须要提供 soap 认证的表头. 举例来说. 可能须要加上例如以下的认证头: <soapenv:Header> &

VB.NET,C#.NET调用Web Service,利用visual studio 的实现方法

在VB.NET调用Web Service提供的服务 技术qq交流群:JavaDream:251572072 下面是一篇文章比较详细,其实具体操作很简单,把Web Service服务地址,利用工具(VS2010),通过添加引用的形式,添加到项目中来就可以应用了. 大家如果这个地方不会操场的话,可以问问我QQ:1606841559 当Web Service已经处于对外提供服务状态,VB.NET就可以通过HTTP"调用"来使用这些服务了.当然前提是要了解Web Service对外提供服务所对

SPServices介绍之三:使用SPSerivces对象调用Web Service

SPServices介绍之三:使用SPSerivces对象调用Web Service 分类: SPSerivces2014-09-21 04:23 304人阅读 评论(0) 收藏 举报 在上一篇文章SPServices介绍之二中,介绍了一些SPServices的基本方法,除了这些方法,SPServices的主要用处是使用Ajax方法调用SharePoint提供的Web Service. 先看一下语法: [javascript] view plaincopy $().SPServices({ op

C#使用SOAP调用Web Service

程序代码 using System;using System.IO;using System.Net;using System.Text; namespace ConsoleApplication1{ class Program    { static void Main(string[] args)        {            //构造soap请求信息            StringBuilder soap = new StringBuilder();            s

php5调用web service

工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经包含了处理soap的模块,但是资料太少了,上php官网上查帮助,写的不是很容易理解,经过多次实践,终于搞清楚了,php调用web service还是非常简单的.下面用一个例子说明: extension=php_openssl.dll extension=php_soap.dll php.ini 这2

Android调用web Service

---恢复内容开始--- 继总结过web service后,再总结一下android中使用web service. 在android中使用web service需要使用到一个第三方开源的类库——ksoap2.他是一个SOAP Web Service客户端开发包.是android平台上高效.轻量级的SOAP开发包. 使用SOAP需要引入第三方的jar包:ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar.如何加入jar包就不在赘述.下面讲