慕课网的秒杀系统-----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>
上面我用红色标记出来的是我认为比较重点的,这部分是关于事务的。
事务是什么呢?
事务的概念:
原子性:操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指令都执行失败,数据进行回滚,回到执行指令前的数据状态。
一致性:事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据的完整性保持稳定。
隔离性:在该事务执行的过程中,无论发生的任何数据的改变都应该只存在于该事务之中,对外界不存在任何影响。只有在事务确定正确提交之后,才会显示该事务对数据的改变。其他事务才能获取到这些改变后的数据。
持久性:当事务正确完成后,它对于数据的改变是永久性的。
这就是我画的一个理解图,事务就是一堆sql语句集合起来,里面任意一条执行失败,整个事务都会进行回滚,就是全部操作复原
,只有全部语句都完美执行,才会完成这个事务。
!!!!不是所有的方法都需要事务,如只有一条修改操作,或者只读操作,不需要事务控制。
然后这个service我个人认为重要的就是这样。。。下一个web层我们再见