JTA 深度历险 - 原理与实现

一、利用 JTA 处理事务1.1 什么是事务处理事务是计算机应用中不可或缺的组件模型,它保证了用户操作的原子性 ( Atomicity )、一致性 ( Consistency )、隔离性 ( Isolation ) 和持久性 ( Durabilily )。 关于事务最经典的示例莫过于信用卡转账:将用户 A 账户中的 500 元人民币转移到用户 B 的账户中,其操作流程如下: 将 A 账户中的金额...

详解 Spring 声明式事务

一、引言Spring的事务机制包括声明式事务和编程式事务。 编程式事务管理:Spring推荐使用 TransactionTemplate,实际开发中使用声明式事务较多。 声明式事务管理:将我们从复杂的事务处理中解脱出来,获取连接,关闭连接、事务提交、回滚、异常处理等这些操作都不用我们处理了,Spring都会帮我们处理。 声明式事务管理使用了 AOP 实现的,本质就是在目标方法执行前后进行拦截。...

SpringBoot 远程调试

在配合 QA 进行代码测试,以及处理线上 BUG 时,代码往往已经被部署于服务器端,因此服务器端程序支持远程调试功能就尤为重要。 Java 原生支持调试功能,由于实际开发中使用 SpringBoot,因此本文探讨基于 jar 包的调试,远程调试的 IDE 为 IDEA。 注: war 包调试、Eclipse 远程调试功能请另行了解,这不在本文的探讨范围内。 一、调试命令最为常见的远程调试命令,也是...

探讨 Spring MVC 能否注入 Request 和 Response

一、引言当我们第一次接触到 Java Web 开发,从最原生的 Servlet 方法开始,我们就知道在 doGet() 或者 doPost() 方法有两个形参,分别是 HttpServletRequest 和 HttpServletResponse,这两个参数代表了 web 容器为我们封装的 HTTP 请求和 HTTP 响应。 当 Java Web 进化到 SpringMVC 中,一系列的杂活脏活...

SpringBoot 整合 AOP

一、前言AOP(Aspect Oriented Programming, 面向切面编程),是 Spring 的核心思想之一,即纵向重复,横向抽取,它在 Spring 中应用广泛,例如 拦截器、日志、事务等等,在 SpringBoot 中使用 AOP 之前,我们先复习下 AOP 的理论知识。 二、AOP 理论2.1 术语解释为了方便解释,给出一个例子: 123456public interface ...

SpringBoot 配置 Logback

一、前言SLF4J(Simple Logging Facade For Java), 它是针对各类 Java 日志框架的同一抽象,即日志门面。Java 的日志框架众多,SLF4J定义了统一的日志抽象接口。 默认情况下,SpringBoot 采用 Logback 来记录日志,并输出 INFO 级别日志到控制台。从下图可以看到,spring-boot-stater 的依赖中已经包含了 Logback,...

SprringBoot 配置国际化

一、LocaleResolver国际化的支持中一个重要的类是 LocaleResolver,它提供了四种默认实现: AcceptHeaderLocaleResolver 没有任何具体实现,通过浏览器头部的语言信息来进行多语言选择。 FixedLocaleResolver 设置固定的语言信息,这样整个系统的语言是一成不变的,用处不大。 CookieLocaleResolver 将语言信息设置到 C...

Spring Validation 实现后端数据校验

前言Web开发中JS校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验。但是为了避免用户绕过浏览器,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,本文将要介绍的Validation 来对数据进行校验。 简单叙述下 JSR303/JSR-349,Hibernate Validation,Spring Validation 之间的关系。 JSR303 是一项标...

WebSoket 初探并于 SpringBoot 整合

一、WebSocket1.1 HTTP与WebSocketWebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 我们知道,HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理。 这种通信模型有一个弊端:...
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×