Java Bean Validation 及其在 Spring Boot 参数校验中的应用
2019-09-13- 1 ConstraintViolationException 和 MethodArgumentNotValidException 在参数校验中有何区别?
- 2 @Valid 和 @Validated 有什么区别?
- 3 为什么在 Spring Boot 项目中, 各个方法中的
@Valid
注解对 query 参数和 list object 旁边的参数校验注解熟视无睹? - 4 为什么在第 3 条的基础上,只要在 Controller 上打上
@Validated
注解,注解中表明的约束又能焕发新生,起到相应的作用?
Building Web Server With Akka HTTP
2019-07-06Philosophy of Akka HTTP
quoted from their documentations:
The Akka HTTP modules implement a full server and clientside HTTP stack on top of akka-actor and akka-stream. It’s not a web-framework but rather a more general toolkit for providing and consuming HTTP-based services. While interaction with a browser is of course also in scope it is not the primary focus of Akka HTTP.
Akka HTTP was designed specifically as “not-a-framework”, not because we don’t like frameworks, but for use cases where a framework is not the right choice. Akka HTTP is made for building integration layers based on HTTP and as such tries to “stay on the sidelines”. Therefore you normally don’t build your application “on top of” Akka HTTP, but you build your application on top of whatever makes sense and use Akka HTTP merely for the HTTP integration needs.
Spring-to-tell 之基于 XML 配置文件的启动流程
2018-09-27Bean 的管理是 Sping 框架中的核心内容。在 Spring 中,Bean 被抽象为 BeanDefinition 这种数据结构,其定义完整描述了我们在配置文件中定义的 \
Spring Data JPA 简明教程
2018-07-28JPA 是为了整合第三方 ORM 框架建立的一套标准接口,统一了数据持久化存储的相关操作。程序员只需学习一套统一的 JPA api,而不必关心底层去做事情的 ORM 框架到底是谁。
Hibernate 等 ORM 框架是 JPA 的底层实现,本身提供了一些 CRUD 功能,但是包含业务逻辑的数据库访问操作仍然需要手写 sql 语句来实现,而 Spring-data-jpa 则提供了进行了更强大的功能,封装了一定的业务逻辑功能,最大程度上减少了手写 sql。
Spring @Transactional两三事
2018-07-13事务是指访问并可能更新数据库中各种数据项的一系列操作,这些操作要么全部成功,要么全部失败。如果说一个数据库支持事务,那么该数据库必须要具备ACID四个特性。亦即:
- 原子性(Atomicity):事务包含的操作要么全部成功,要么全部失败
- 一致性(Consistency):事务操作使数据库从一个一致性状态变换到另一个一致性状态
- 隔离性(Isolation):多个用户并发访问数据库时,每个并发事务之间会互相隔离,不会互相干扰。
- 持久性(Durability):事务操作对数据库中数据的改变是永久性的。
由此又引出事务的隔离级别、不同隔离级别会产生的不同毛病等问题。
在Spring中使用这些概念的时候,可能会和Spring中的一些具体的定义产生混淆,在此记录。