Spring开发Service层

service层的作用:

  • 业务逻辑操作(某些操作依赖于Dao层),将操作后的结果在返回出去给View层根据结果展现视图效果。

在开发完dao层(Spring+MyBatis)后,对Service层进行开发

基本步骤:

  • 使用xml文件配置:spring/spring-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:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!--扫描service包下所有使用注解的类型--><context:component-scan base-package="cn.xiaofang.service"></context:component-scan><!--配置事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--配置基于注解的声明式事务    默认使用注解来管理事务行为--><tx:annotation-driven transaction-manager="transactionManager" />
</beans>
  • 建立用来封装对象的类,实现数据在各个层的传递
  • 建立异常类来处理各种异常(如超时异常、重复秒杀异常)
  • 建立类来实现业务代码(接口、实现类)

业务层设计技巧

  • 业务接口设计和封装
  • Spring IOC配置技巧(第三方实例由xml配置(如数据库链接池相关),自己建立的实例由注解配置(dao实例))
  • Spring声明事务使用和理解(事务由注解实现:事务长度尽量短、只读操作不需要事务)

细节:

  • 使用枚举表示常量数据字段
  • 创建异常包(来检测事务是否执行顺利),要使用运行期异常,Spring只有运行期异常才回滚事务
  • 在并发量高的系统中事务控制
    1.保证事务方法的执行时间尽可能短,不要穿插其他网络操作RPC/HTTP请求或者剥离到事务方法外部
    2.不是所有的方法都需要事务,如只有一条修改操作,只读操作不要事务控制
    3.使用@Transactional注解事务
  • logger来进行测试日志记录


开发后想法:

  • 为什么用IOC:
    1.对象创建统一托管
    2.规范的生命周期管理
    3.灵活的依赖注入
    4.一致的获取对象(单例)

Spring开发Service层相关推荐

  1. Spring中service层与dao(mapper)层

    一.dao(mapper)层 DAO层叫数据访问层,全称为data access object,持久层直接和数据库打交道,具体到对于某个表的增删改查,封装了增删改查基本操作. 二.Service层 S ...

  2. websocket连接mysql_websocket 使用 spring 的service层 ,进而调用里面的 dao层 来操作数据库 ,包括redis、mysql等通用...

    1.前言 描述一下今天用websocket踩得坑  --->空指针异常! 我想在websocket里面使用service 层的接口,从中获取数据库的一些信息  , 使用 @Autowired 注 ...

  3. SpringBoot在自定义类中调用service层等Spring其他层

    解决方案: 1.上代码@Component public class ServerHandler extends IoHandlerAdapter {@Autowiredprotected Healt ...

  4. Spring整合Mybatis之DAO层、Service层开发

    3. Spring整合Mybatis编程DAO层开发 1. 项目引入相关依赖spring mybatis mysql mybatis-spring druid2. 编写spring.xml整合:spr ...

  5. Spring Boot开发基于三层架构设计:Dao层、Service层、Controller层

    三层架构设计:基于Spring Boot开发要使用三层架构: 数据访问层(Dao).业务逻辑层(Service).控制层(Control-ler) (1)数据访问层(Dao):Dao层是最底层的设计, ...

  6. [java基础] --- java开发,service层是不是一定要写接口

    估计很多java开发的同学都遇到过,service层要写一个接口,然后再写接口的实现类,但这个接口从项目开始到项目倒闭,都不会有第二个实现,那为什么不直接写个service类呢?如果你还没想过这个问题 ...

  7. SpringBoot实现Java高并发秒杀系统之Service层开发(二)

    继上一篇文章:SpringBoot实现Java高并发秒杀系统之DAO层开发 我们创建了SpringBoot项目并熟悉了秒杀系统的表设计,下面我们将讲解一下秒杀系统的核心部分:Service业务层的开发 ...

  8. Spring、Mybatis整合Service优化思路,DAO层、Service层最终编码以及log4j日志的使用

    5. Spring.Mybatis整合Service层事务控制优化思路分析 # spring中处理事务的两种方式1. 编程式事务处理定义:通过在业务层中注入事务管理器对象,然后通过编码的方式进行事务控 ...

  9. Spring中DAO层、Service层、Controller层的定义

    1.dao层 dao层主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,就可以在模块中调用此接 ...

最新文章

  1. AI+DevOps正当时
  2. 表格转化为Latex代码
  3. C库宏-offsetof()
  4. 简单地利用canvas载入视频
  5. 常用正则表达式整理【总结】
  6. SELinux入门简介
  7. hadoop window 搭建
  8. echart 饼图图例legend支持滑动
  9. Qt富文本编辑器QTextDocument
  10. hibernate入门学习(更新中)
  11. 有源rc电压放大器实验报告_为什么将放大器装在示波器探头前端?
  12. 寒假汇编语言作业(11)
  13. 3D点云分割算法汇总
  14. 富文本Ueditor
  15. springmvc源码阅读之启动加载(2)-----------初始化参数
  16. 网站访问量统计 | hexo
  17. 已解决【Watch检查软件更新失败,因为你尚未接入互联网。】
  18. 以太网通信连接不上自检步骤
  19. 冒泡排序法(C语言实现)
  20. 红米note7找android,红米Note 7

热门文章

  1. notepad++ 正则表达式 替换数字
  2. ESP32与PS4手柄的通讯
  3. 性能测试--需求指标计算
  4. qlist的遍历_QT 容器及遍历
  5. python蓝桥杯试题 基础练习 十六进制转十进制 实现进制转换
  6. measure against用法
  7. 《惢客创业日记》2019.07.24(周三)从产品角度理解“为腹不为目”
  8. 写python脚本管理_如何用python脚本控制TPLINK路由器
  9. VMWare win10 安装程序无法创建新的系统分区也无法定位现有分区的解决方法
  10. 任何一句话都可以品味一辈子