慕课网的秒杀系统-----service层

创建service包、exception包、dto包

service包:用于存放service接口和实现雷

exception:用于存放自己声明的异常

dto包:便于与前端交互和后台逻辑处理的一个容器

然后跟着视频、以及业务逻辑创建接口。。。这里都是一些业务逻辑的没什么好谈的。然后我是主要是通过这个来学习ssm的,

然后就主要来说一下spring托管service吧

先理解一下ioc。

ioc:就是把本来要我们自己创建的对象 交给spring容器,让它来创建和传递过来给我们用。

可以有三种ioc注入方式:xml 注解 还有就是java实现某些接口

首先在resources.spring下新建一个xml配置,然后自己去copy一段spring的头文件

<!--扫描service包下所有使用注解的类型-->
<context:component-scan base-package="org.seckill.service"></context:component-scan>

<!--配置事务的管理器-->      
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--注入数据库连接池-->
        <property name="dataSource" ref="dataSource"></property>
</bean>

<!--配置基于注解的声明式事务
默认使用注解来管理事务行为
-->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

上面我用红色标记出来的是我认为比较重点的,这部分是关于事务的。

事务是什么呢?

事务的概念:

原子性:操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指令都执行失败,数据进行回滚,回到执行指令前的数据状态。
一致性:事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据的完整性保持稳定。
隔离性:在该事务执行的过程中,无论发生的任何数据的改变都应该只存在于该事务之中,对外界不存在任何影响。只有在事务确定正确提交之后,才会显示该事务对数据的改变。其他事务才能获取到这些改变后的数据。
持久性:当事务正确完成后,它对于数据的改变是永久性的。

慕课网的秒杀系统-----service层

这就是我画的一个理解图,事务就是一堆sql语句集合起来,里面任意一条执行失败,整个事务都会进行回滚,就是全部操作复原

,只有全部语句都完美执行,才会完成这个事务。

!!!!不是所有的方法都需要事务,如只有一条修改操作,或者只读操作,不需要事务控制。

然后这个service我个人认为重要的就是这样。。。下一个web层我们再见