-
声明式事务: 声明式事务目的在于解脱繁琐的关于事务的代码, 在实际的开发中,不需要关心事务的开启、提交、回滚、关闭等等,而是直接交由第三方框架托管,比如spring。 第二中方法:tx:advice+aop命名空间(一次配置永久生效) 第三中方法:@Transactional(注解控制) 本例推荐使用第三种基于注解的声明式事务的方法,这种方式的优点在于,当看到@Transcation注解的时候知道这是一个与事务有关的方法,此时就会自觉遵守一些关于事务开发的规范,有利于程序的进一步维护。 Spring在抛出运行期异常时会回滚事务,两点注意: 1 非运行期异常时要注意,防止出现部分成功部分失败的情况(所以自己封装异常时,在需要的地方要implements RuntimeException)。 2 小心使用try-catch:被try-catch块包裹起来的异常Spring也是感觉不到的。查看全部
-
Spring-IOC注入方式和场景
1、XML方式:主要用于配置第三方类库或需要命名空间配置
2、注解:自己编写的类,直接在代码中使用注解,如@Service,@Controller
3、Java配置类:需要通过代码控制对象创建逻辑的场景,如自定义修改依赖类库
查看全部 -
* 使用注解控制事务方法的优点(对于秒杀这种对事务延迟要求高的业务场景尤为重要): * 1.开发团队达成一致约定,明确标注事务方法的编程风格 * 2.保证事务方法的执行时间尽可能短,不要穿插其他网络操作RPC/HTTP请求或者剥离到事务方法外部(保证事务方法里面是很干净的/效率的) * 3.不是所有的方法都需要事务,如只有一条修改操作、只读操作不要事务控制(MYSQL 表级锁、行级锁)查看全部
-
秒杀业务接口的设计应该站在“使用者”的角度,从四个方面着手:①方法定义的粒度②参数③返回值类型④可能抛出异常的类型; 在编写接口的过程中,设计接口方法名以及方法参数的时候,更多的是考虑返回值类型,这里封装了DTO(也就是数据传输层),根据具体的方法来设计返回的参数类型,以及有可能抛出的异常,并对异常进行定义。在有可能抛出异常的地方,抛异常的时候,除了抛出“最大”的异常之外,还应该提醒用户这里可能抛出的子类异常,使得在后续编写代码的过程中正确处理这些异常。 在执行秒杀的方法中用到了MD5加密进行用户信息以及秒杀信息的校验。查看全部
-
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="true"> <!--ConsoleAppender 用于在屏幕上输出日志--> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d {HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="stdout"/> </root> </configuration>
查看全部 -
枚举类定义
查看全部 -
dto数据传输层:跟entity有点像,存放表示数据的一些类型,entity是业务的一些封装(秒杀、秒杀成功),dto关注web与service数据传递
异常包:专门存放业务逻辑的异常(重复秒杀、秒杀关闭)
service层设计业务接口:站在使用者的角度设计,而不是实现
重复秒杀异常(运行期异常)
Java异常主要分编译期异常和运行期异常,运行期异常不需要我们手动try/catch;spring声明式事务只接收运行期异常回滚策略。
查看全部 -
运行期异常,会做事务回滚。非运行期异常,不会做事务回滚。在运行期做了try catch,也不会做回滚。查看全部
-
声明式事务独有的概念是"事务方法嵌套",和mysql中事务没有关系,体验在它的传播行为上,,当有新的事务加入时,加到原有的事务,如果没有就创建新的事务查看全部
-
运行期异常,会做事务回滚。非运行期异常,不会做事务回滚。在运行期做了try catch,也不会做回滚。查看全部
-
控制反转是指对象的初始化等过程都交给spring容器去完成,用户只需要调用即可.这也是spring的工厂特性. 依赖注入是指通过配置文件的配置来决定类之间的引用关系和数据设置.查看全部
-
声明式事务独有的概念是"事务方法嵌套",和mysql中事务没有关系,体验在它的传播行为上,,当有新的事务加入时,加到原有的事务,如果没有就创建新的事务查看全部
-
我们不需要写代码进行开启事务/提交事务/回滚事务,由第三方框架自动执行,这样全自动的方式叫做声明式事务查看全部
-
事务方法嵌套查看全部
-
DAO层工作演变为:接口设计+SQL编写 代码和SQL的分离,方便Review DAO拼接等逻辑在service层完成查看全部
举报
0/150
提交
取消