自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一叶知春秋

朝菌不知晦朔,蟪蛄不知春秋。

  • 博客(293)
  • 资源 (20)
  • 收藏
  • 关注

原创 Spring MVC 中文文档

Spring Web MVC是建立在Servlet API上的原始Web框架,从一开始就包含在Spring框架中。正式名称 “Spring Web MVC” 来自其源模块的名称( ),但它更常被称为 “Spring MVC”。与Spring Web MVC并行,Spring Framework 5.0引入了一个 reactive 技术栈的 Web框架,其名称 “Spring WebFlux” 也是基于其源模块( )。本章介绍了Spring Web MVC。下一章 将介绍Spring WebFlux。关于基线

2023-10-27 13:23:47 445

原创 19 | 如何搞清楚事务、连接池的关系?正确配置是怎样的

第一步:新建一个 TransactionHelper 类,进行事务管理,代码如下。复制代码/*** 利用spring进行管理*/@Component/*** 利用spring 的机制和jdk8的function机制实现事务*/@Transactional(rollbackFor = Exception.class) //可以根据实际业务情况,指定明确的回滚异常第二步:直接在 service 中就可以使用了,代码如下。复制代码@Autowired==/**

2023-10-15 20:40:27 792

原创 18 | 生产环境多数据源的处理方法有哪些

我们都知道 DataSource 的本质是获得数据库连接,而 AbstractRoutingDataSource 帮我们实现了动态获得数据源的可能性。下面还是通过一个例子看一下它是怎么使用的。第一步:定一个数据源的枚举类,用来标示数据源有哪些。复制代码/*** 定义一个数据源的枚举类*/DB1, //实际工作中枚举的语义可以更加明确一点;DB2;return e;return db1;//没找到的情况下,默认返回数据源1。

2023-10-15 20:38:24 109

原创 17 | DataSource 为何物?加载过程是怎样的

在实际工作中,由于 HikariCP 和 Druid 各有千秋,国内的很多开发者都使用 AliDruid 作为数据源,我们看看都是怎么配置的,每一步都很简单。第一步:引入 Gradle 依赖。复制代码第二步:配置数据源。复制代码spring.datasource.druid.url= # 或spring.datasource.url=spring.datasource.druid.username= # 或spring.datasource.username=

2023-10-15 20:37:16 438

原创 16 | 如何自定义 HandlerMethodArgumentResolvers

在实际的工作中,你可能会遇到对老项目进行改版的工作,如果要我们把旧的 API 接口改造成 JPA 的技术实现,那么可能会出现需要新、老参数的问题。假设在实际场景中,我们 Page 的参数是 page[number],而 page size 的参数是 page[size],看看应该怎么做。第一步:新建 MyPageableHandlerMethodArgumentResolver。用来兼容?page[size]=2&page[number]=0 的参数情况;支持 JPA 新的参数形式?

2023-10-15 20:35:58 154

原创 15 | JPA 对 Web MVC 开发者做了哪些支持

正常情况下,我们开启 Spring Data 对 Spring Web MVC 支持的时候需要在 @Configuration 的配置文件里面添加 @EnableSpringDataWebSupport 这一注解,如下面这种形式:复制代码由于我们用了 Spring Boot,其有自动加载机制,会自动加载 SpringDataWebAutoConfiguration 类,发生如下变化:复制代码。

2023-10-15 20:34:20 414

原创 14 | 乐观锁机制和重试机制在实战中应该怎么用

乐观锁在实际开发过程中很常用,它没有加锁、没有阻塞,在多线程环境以及高并发的情况下 CPU 的利用率是最高的,吞吐量也是最大的。而 Java Persistence API 协议也对乐观锁的操作做了规定:通过指定 @Version 字段对数据增加版本号控制,进而在更新的时候判断版本号是否有变化。如果没有变化就直接更新;如果有变化,就会更新失败并抛出“OptimisticLockException”异常。我们用 SQL 表示一下乐观锁的做法,代码如下:复制代码。

2023-10-15 20:32:50 409

原创 13 | 如何正确使用 @Entity 里面的回调方法

复制代码@Log4j2如果注释了,测试用例这个地方的验证也需要去掉@PreUpdate如果注释了,测试用例这个地方的验证也需要去掉@PreRemove@PostLoad//查询方法里面可以对一些敏感信息做一些日志我们上面注释的代码,也可以改变 entity 里面的值,但是在这个 Listener 的里面我们不做修改,所以把 setVersion 和 setCreateUserId 注释掉了,要注意测试用例里面这两处也需要修改。

2023-10-15 20:31:41 275

原创 12 | JPA 的审计功能解决了哪些问题

Auditing 是帮我们做审计用的,当我们操作一条记录的时候,需要知道这是谁创建的、什么时间创建的、最后修改人是谁、最后修改时间是什么时候,甚至需要修改记录……1.可以很容易地让我们写自己的 BaseEntity,把一些公共的字段放在里面,不需要我们关心太多和业务无关的字段,更容易让我们公司的表更加统一和规范,就是统一加上 @CreatedBy、@CreatedDate、@LastModifiedBy、@LastModifiedDate 等。而其他都不变,我们再跑一次刚才的测试用例,发现效果是一样的。

2023-10-15 20:30:19 227

原创 11 | JpaRepository 如何自定义

Java Persistence API 规定,操作数据库实体必须要通过 EntityManager 进行,而我们前面看到了所有的 Repository 在 JPA 里面的实现类是 SimpleJpaRepository,它在真正操作实体的时候都是调用 EntityManager 里面的方法。

2023-10-15 20:28:48 586

原创 10 | JpaSpecificationExecutor 实现的原理是什么

我们可以自定义一个Specification 的实现类,它可以实现任何实体的动态查询和各种条件的组合。复制代码/*** 实现实体根据不同的字段、不同的Operator组合成不同的Predicate条件*/@Override} else {我们通过 `` 泛型,解决不同实体的动态查询(当然了,我只是举个例子,这个方法可以进行无限扩展)。我们通过 SearchCriteria 可以知道不同的字段是什么、值是什么、如何操作的,看一下代码:复制代码/**

2023-10-15 20:27:09 72

原创 09 | JpaSpecificationExecutor 解决了哪些问题

那么我们再看一下参数 ExampleSpecification 的源码,发现它是接口 Specification 的实现类,并且是非公开的实现类,可以通过接口对外暴露 and、or、not、where 等组合条件的查询条件。我们通过查看 JpaSpecificationExecutor 的 Structure 图会发现,方法就有这么几个,细心的同学这个时候会发现它的参数 Specification,正是我们分析 QueryByExampleExecutor 的原理时候使用的 Specification。

2023-10-15 20:25:27 166

原创 08 | Jackson 注解在实体里面如何应用?常见的死循环问题如何解决?

我们用 Spring Boot 里面默认集成的 fasterxml.jackson 加以说明,这看似和 JPA 没什么关系,但是一旦我们和 @Entity 一起使用的时候,就会遇到一些问题,特别是新手同学,我们这一课时详细介绍一下用法。先来跟着我了解一下 Jackson 的基本语法。

2023-10-13 18:51:01 401

原创 07 | @Entity 之间的关联关系注解如何正确使用?

实体与实体之间的关联关系一共分为四种,分别为 OneToOne、OneToMany、ManyToOne 和 ManyToMany;而实体之间的关联关系又分为双向的和单向的。实体之间的关联关系是在 JPA 使用中最容易发生问题的地方,接下来我将一一揭晓并解释。我们先看一下 OneToOne,即一对一的关联关系。

2023-10-13 18:50:06 900

原创 06 | @Entity 里面的 JPA 注解有哪些?在 Java 多态场景下如何使用?

前几课时我为你介绍了 Repository 的用法,其中我经常会提到“实体类”(即我们前面的 User 类),它是对我们数据库中表的 Metadata 映射,那么具体如何映射呢?这一课时我们来讲解。我们先看一下 Java Persistence API 里面都有哪些重要规定;再通过讲解基本注解,重点介绍一下联合主键和实体之间的继承关系,然后你就会知道 JPA 的实体里面常见的注解有哪些。话不多说,看一下 Entity 的相关规定。

2023-10-13 18:49:00 1581

原创 05 | @Query 解决了什么问题?什么时候应该选择它?

上面我介绍了 @Query 的基本用法,下面介绍一下 @Query 在我们的实际应用中最受欢迎的两处场景。

2023-10-13 18:47:42 757

原创 04 | 如何利用 Repository 中的方法返回值解决实际问题?

官方给我们提供了自定义 Streamable 的方法,不过在实际工作中很少出现要自定义保证结果类的情况,在这里我简单介绍一下方法,看如下例子:复制代码(4)以上四个步骤介绍了自定义 Streamable 的方法,分别为:(1)Product 实体,公开 API 以访问产品价格。(2)Streamable`` 的包装类型可以通过 Products.of(…) 构造(通过 Lombok 注解创建的工厂方法)。(3)包装器类型在 Streamable`` 上公开了计算新值的其他 API。

2023-10-13 18:46:12 278

原创 03 | Defining Query Methods 的命名语法与参数

若想要实现 CRUD 的操作,常规做法是写一大堆 SQL 语句。但在 JPA 里面,只需要继承 Spring Data Common 里面的任意 Repository 接口或者子接口,然后直接通过方法名就可以实现,神不神奇?来看下面具体的使用步骤。第 1 步,User 实体的 UserRepository 继承 Spring Data Common 里面的 Repository 接口:复制代码第 2 步,对于 Service 层就可以直接使用 UserRepository 接口:复制代码。

2023-10-13 18:44:53 163

原创 02 | Spring Data Common 之 Repository 如何全面掌握?

本课时到这里就结束了,这一课时我讲解了 Repository 接口、CrudRepository 接口、PagingAndSortingRepository 接口、JpaRepository 接口的用法,通过源码我们知道了接口里面的方法有哪些、怎么实现的,也知道了 Spring 的动态代理机制是怎么运用到 UserRepository 接口的。

2023-10-13 18:43:33 140

原创 01 | Spring Data JPA 初识

JPA 是 JDK 5.0 新增的协议,通过相关持久层注解(@Entity 里面的各种注解)来描述对象和关系型数据里面的表映射关系,并将 Java 项目运行期的实体对象,通过一种Session持久化到数据库中。想象一下,一旦协议有了,大家都遵守了此种协议进行开发,那么周边开源产品就会大量出现,比如我们在后面要介绍的第 29 课时(Spring Data Rest 是什么?和 JPA 是什么关系?

2023-10-13 18:40:17 143

原创 占位符解析工具类

这个工具类是MyBatis用于解析占位符#{}、${}的,抽取源码简化后,可以用于自生项目的解析。

2023-05-07 02:39:46 230 1

原创 【企业架构】企业架构师vs解决方案架构师vs领域架构师

企业架构被认为是通过信息技术获取竞争优势的关键途径之一。降低成本、增加灵活性和规范技术环境的需求越来越大。企业架构在概念上可以划分为不同的架构层,包括业务架构和IT架构(数据、应用程序和技术架构)。然后,解决方案体系结构接受一个问题,并提出构建块来解决它。它经常重用企业架构提供的其他元素(企业构建块、企业功能、架构标准和指导方针)因此,企业架构师在企业架构团队和组织的其他地方有许多不同的角色和职责。

2023-02-06 23:01:20 350

原创 XDocReport使用入门

XDocReport是GitHub上根据麻省理工学院许可证开源的Wrod导出框架。XDocReport可以根据ODT、Doc、Docx文档模板通过模板引擎语法(Freemarker、Velocity)转换为另外一种格式文档(Doc、Docx、XHTML、PDF)。

2022-12-24 17:16:29 6900 6

原创 (免费)Word转PDF全套工具类

本工具类是基于aspose技术实现,由于aspose是付费技术,这里使用的许可认证方式支持。

2022-11-27 02:16:44 322 1

原创 poi-tl(word模板渲染)

pot-tl是一个word模板渲染引擎,支持图片、文本、表格等不同的模板数据渲染。

2022-09-25 00:46:47 12925 7

原创 OAuth 2.0设计规范

OAuth2.0接口设计规范说明OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务器提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。

2022-05-20 15:26:55 1369 1

原创 树结构如何在关系型数据库中存储

树结构数据如何在数据库中存储(优化方案)

2022-04-25 23:00:59 2921

原创 UML快速入门

UML基础核心知识快速入门

2022-04-24 23:03:45 1963

原创 Java学习笔记分享之Spring Cloud Alibaba篇(上)

第二代Spring Cloud知识

2020-11-27 15:15:20 396 1

原创 Java学习笔记分享之Spring Cloud Netflix篇(上)

第一代Spring Cloud组件使用教材

2020-11-27 15:10:28 2775 2

原创 Java学习笔记分享之MySQL篇

MySQL服务器搭建单机版、集群版、MHA搭建

2020-11-27 15:03:18 772 1

原创 Java学习笔记分享之Dubbo篇

Dubbo相关知识分享

2020-11-27 12:05:26 471 1

原创 分布式集群架构解决方案

分布式集群架构解决思路和方案介绍

2020-11-27 11:53:34 1548

原创 Java学习笔记分享之Zookeeper篇

Zookeeper安装与使用

2020-10-03 21:06:13 497 1

原创 Java学习笔记分享之Spring篇(原理)

Spring 学习笔记分享

2020-10-03 21:02:42 493 1

原创 Java学习笔记分享之SpringMVC篇

Spring MVC学习笔记总结与分享

2020-10-03 21:00:03 355

原创 Java学习笔记分享之MyBatis篇(下)

MyBatis学习笔记分享

2020-10-03 20:57:13 305 1

原创 Java学习笔记分享之MyBatis篇(中)

MyBatis学习笔记分享

2020-10-03 20:54:32 442

原创 Java学习笔记分享之MyBatis篇(上)

mybatis学习笔记分享之自定义持久层框架

2020-10-03 20:52:18 337

原创 Java学习笔记分享之Spring Boot篇(基础)

Spring Boot学习笔记分享

2020-10-03 20:47:51 468

aspose全套word转pdf工具

资源包含license.xml许可证、aspose-words-16.8.0-jdk16.jar、个人封装的直接可用工具类。

2022-11-27

jarslink-demo

这是本人的jarslink使用demo,请结合csdn博客使用https://blog.csdn.net/sinat_32366329/article/details/80087926,由于不可以选择0积分,请见谅,如果没有积分需要的,可以留言,将发送到邮箱

2018-04-26

httpclient官网教程中文版

httpclient官网教程中文版,这是根据官方文档翻译的doc文件,带有目录

2018-03-28

响应式Web设计 HTML5和CSS3实战第二版带目录

响应式Web设计 HTML5和CSS3实战第二版,带有目录,非常清晰的版本。

2018-03-16

RabbitMQ实战带目录版本

RabbitMQ消息队列完整版本讲解书籍,需要的朋友可以自己下载

2018-02-08

IDEA使用手册

IDEA使用教程,非常全面的一本手册,需要的朋友可以自己下载看看,学习

2018-02-08

JDK8中文API

这是JDK8中文文档API,如果英文不好的朋友可以下载期望可以进步

2017-12-12

Hadoop权威指南

Hadoop权威指南中文带目录完整版本,需要的同学可以下载

2017-12-12

FreeMarker教程中文版

FreeMarker教程中文版,不带有目录,期望看清楚后下载。

2017-12-12

NodeJS实战

NodeJS实战完整版本,带目录,需要的自己下载资源,。。

2017-12-08

Java编程思想 第4版 (带目录)

Java编程思想 第4版 (带目录)无论是那个级别的工程师都需要去读的一本书籍

2017-12-08

Effective Java

Effective Java中文带目录版本,这是关于别人对java开发中的总结的,不了解的可以先去当当网看说明再下载

2017-12-06

shiro官方教程中文版和spring整合说明文档

shiro的官方教程以及spring整合说明二和一打包下载......

2017-12-06

dubbo开发指南

dubbo官方使用手册说明文档,三合一打包下载。。。。。。

2017-10-31

dubbo快速启动案例

根据阿里巴巴dubbo框架官网的说明写的dubbo服务端和消费端的简单快速启动案例

2017-10-27

AngularJS英文版

这是英文版本的书籍,如果英文不好的学童建议不要浪费积分下载,毕竟积分难拿

2017-10-24

Go程序设计语言

Go程序设计语言是对Go语言的基础知识的说明,适合新手入门

2017-10-21

Go语言实战电子书

Go语言实战电子书完整版,不知道有什么内容的可以去当当网看目录

2017-10-21

jstl标签完整说明和用法

这份电子书是关于jstl标签的用法带目录版本,需要的可以下载

2017-10-21

maven实战电子书

maven实战电子书带目录中文版,期望可以对你们的进步有帮助

2017-10-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除