springmvc+mybatis整合service层
来源:互联网 发布:淄博网站排名优化软件 编辑:程序博客网 时间:2024/05/22 00:08
在整合完dao层后,下一步就是service层的整合。这里顺道说一下,一个框架的搭建,最好是从底层往上开始搭建,至于这样做的好处,就请在实战中慢慢体会吧。
一、编写service
首先需要创建service接口
package com.sky.ssm.service;import java.util.List;import com.sky.ssm.po.ItemsCustom;import com.sky.ssm.po.QueryItemsCustomVo;/** * 商品管理service * @author sk * */public interface ItemsService {//商品查询列表public List<ItemsCustom> findItemsList(QueryItemsCustomVo queryItemsCustomVo) throws Exception;}然后编写service的实现类
package com.sky.ssm.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import com.sky.ssm.mapper.ItemsCustomMapper;import com.sky.ssm.po.ItemsCustom;import com.sky.ssm.po.QueryItemsCustomVo;import com.sky.ssm.service.ItemsService;/** * 商品管理的实现类 * @author sk * */public class ItemsServiceImpl implements ItemsService {//注解mapper/** 因为在applicationContext-dao.xml中对mapper进行了扫描 * (<!-- 配置mapper扫描器 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 扫描的包路径,如果需要扫描多个包,中间使用半角逗号隔开 --><property name="basePackage" value="com.sky.ssm.mapper"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean>) * 因此,mapper已经存在到spring容器中,这里只需要获取即可 */@Autowiredprivate ItemsCustomMapper itemsCustomMapper;public List<ItemsCustom> findItemsList(QueryItemsCustomVo queryItemsCustomVo)throws Exception {return itemsCustomMapper.queryItemsList(queryItemsCustomVo);}}
二、service的配置
applicationContext-service.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"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsd"><!-- 商品管理的service --><bean id="itemsService" class="com.sky.ssm.service.impl.ItemsServiceImpl"/></beans>三、事务控制的配置
applicationContext-transaction.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"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsd"><!-- 使用spring的声明式事务控制方法 --><!-- 一、声明一个spring的事务管理器 对mybatis操作数据库的事务控制,spring使用jdbc的事务控制类--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 配置数据源 引用applicationContext-dao.xml中的dataSourcedataSource在applicationContext-dao.xml中配置了--><property name="dataSource" ref="dataSource"/></bean><!-- 二、配置 通知 即 配置事务的传播特性 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!-- 传播行为 --><!-- REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务; SUPPORTS:支持当前事务,如果当前没有事务,就以非事务的方式执行 --><tx:method name="save*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED"/><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="find*" propagation="SUPPORTS" read-only="true"/><tx:method name="get*" propagation="SUPPORTS" read-only="true"/><tx:method name="select*" propagation="SUPPORTS" read-only="true"/></tx:attributes></tx:advice><!-- 三、配置aop --><!-- 在AOP中有几个概念:— 方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。— 连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。— 通知(Advice):在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。— 切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。所以 “<aop:aspect>”实际上是定义横切逻辑,就是在连接点上做什么,“<aop:advisor>”则定义了在哪些连接点应用什么 <aop:aspect>。Spring这样做的好处就是可以让多个横切逻辑(即<aop:aspect>定义的)多次使用,提供可重用性。 --><aop:config><!-- (* com.sky.ssm.service.impl.*.*(..))中几个通配符的含义: 第一个 * —— 通配 任意返回值类型 第二个 * —— 通配 包com.sky.ssm.service.impl下的任意class第三个 * —— 通配 包com.sky.ssm.service.impl下的任意class的任意方法第四个 .. —— 通配 方法可以有0个或多个参数 --><aop:advisor advice-ref="txAdvice" pointcut="execution(* com.sky.ssm.service.impl.*.*(..))"/></aop:config></beans>
项目结构目录:
0 0
- springmvc+mybatis整合service层
- springmvc+mybatis整合dao层
- springmvc学习笔记(8)-springmvc整合mybatis之service
- springmvc学习笔记(8)-springmvc整合mybatis之service
- springmvc+mybatis整合springmvc
- Springmvc 与 MyBatis的整合(四)service
- springmvc注入service层
- springmvc+mybatis整合
- Spring-SpringMVC-Mybatis整合
- springmvc Mybatis 整合
- SpringMVC+Mybatis整合注解
- springmvc+spring+mybatis整合
- springmvc+spring+mybatis整合
- Spring+SpringMVC+Mybatis整合
- springmvc+mybatis+spring整合
- SpringMVC+mybatis+maven整合
- SpringMvc 3.0 + MyBatis 整合
- SpringMVC+Mybatis整合
- Markdown 是一种简单的、轻量级的标记语法
- 用cxf发布和调用web service
- 版本工具的使用(SVN+GIT)
- eclipse中导入项目的包显示红色叹号
- openwrt启动脚本分析
- springmvc+mybatis整合service层
- parallaxView实现方式总结-个人中心背景效果
- Spring @Value使用示例
- 【Shiro-cas之路】——在Linux上安装Tomcat
- servlet初学 摘记
- 容器化的MySQL性能如何
- Intellij IDEA Debug调试技巧
- Linux下Nodejs安装(完整详细)
- java.lang.IllegalArgumentException: Control character in cookie value or attribute.