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

Posted HigginCui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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...

 

【小结】

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

 

以上是关于08_Spring实现action调用service,service调用dao的过程的主要内容,如果未能解决你的问题,请参考以下文章

关于Spring事务控制方面的问题,就是不在service层做控制

Java项目,bean类,dao包,service包,action包,现在想用action调用数据库中数据,数据在bean里有get set

Spring学习3—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)

调用远程service

Spring4 In Action-3.5.1-@PropertySource运行时注入值

Spring注解问题,[action中注入service失败