![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springboot 2.0
文章平均质量分 79
Jhon_chu
这个作者很懒,什么都没留下…
展开
-
Spring Boot + MyBatis + MySQL 实现读写分离
1、引言读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AOP然而,应用程序层面去做读写分离最大的弱点(不足之处)在于无法动态增加数据库节点,因为数据源配置都是写在配置中的..原创 2021-11-08 10:27:03 · 142 阅读 · 0 评论 -
springboot与redis整合实现redis 的发布订阅的功能
@Configurationpublic class RedisConfig { @Bean RedisMessageListenerContainer container (RedisConnectionFactory redisConnectionFactory, MessageListenerAdapter listenerAdapter){ RedisMessageListenerContainer container = new RedisMessageLi.原创 2020-12-16 11:59:25 · 342 阅读 · 0 评论 -
第 3-6 课:Spring Data JPA 多数据源的使用
项目中使用多个数据源在以往工作中比较常见,微服务架构中不建议一个项目使用多个数据源。在微服务架构下,一个微服务拥有自己独立的一个数据库,如果此微服务要使用其他数据库的数据,需要调用对应库的微服务接口来调用,而不是在一个项目中连接使用多个数据库,这样微服务更独立、更容易水平扩展。虽然在微服务架构下,不提倡一个项目拥有多个数据源,但在 Spring Boot 体系中,项目实现多数据源调用却是一件很...转载 2019-06-19 11:39:52 · 309 阅读 · 0 评论 -
第 3-7 课:Spring Boot 集成 Druid 监控数据源
Druid 介绍Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和 SQL 解析器组成,该项目主要是为了扩展 JDBC 的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计 SQL 信息、SQL 性能收集、SQL 注入检查、SQL 翻译等,程序员可以通过定制来实现自己需要的功能。Druid 首先是一个数据库连接池,但它不仅仅是一个数据库连接池...转载 2019-06-19 11:41:44 · 151 阅读 · 0 评论 -
第 3-8 课:Spring Data JPA 和 Thymeleaf 综合实践
在前面课程中,我们学习了 Spring Boot Web 开发、JPA 数据库操作、Thymeleaf 和页面交互技术,这节课综合这些内容做一个用户管理功能,包括展示用户列表(分页)、添加用户、修改用户和删除用户。有人说程序员的一生都是在增、删、改、查,这句话不一定全对,但也有一定的道理,相比于这句话,我更认同的是这句:程序员的技术学习都是从增、删、改、查开始的。这节课将介绍如何使用 JPA ...转载 2019-06-19 11:38:22 · 216 阅读 · 2 评论 -
第 4-1 课:Spring Boot 操作 Memcache
在常见的企业架构中,随着公司业务高速发展,最先出现瓶颈的是数据库,这个时候很多企业就会考虑使用缓存来缓解数据库的压力,这是缓存使用最多的场景之一;另外在高并发抢购、分布式 Session 等场景下,也会使用缓存来提高系统的高可用性。常用的缓存中间件有 Memcache 和 Redis,今天我们先来学习 Memcache 的使用。Memcache 介绍Memcache 是一个自由和开放源代码...转载 2019-06-19 11:40:33 · 233 阅读 · 0 评论 -
第 4-2 课:Spring Boot 和 Redis 常用操作
Redis 是目前使用最广泛的缓存中间件,相比 Memcached,Redis 支持更多的数据结构和更丰富的数据操作,另外 Redis 有着丰富的集群方案和使用场景,这一课我们一起学习 Redis 的常用操作。Redis 介绍Redis 是一个速度非常快的非关系数据库(Non-Relational Database),它可以存储键(Key)与 5 种不同类型的值(Value)之间的映射(M...转载 2019-06-19 11:40:01 · 215 阅读 · 0 评论 -
第 4-3 课:使用 Redis 实现 Session 共享
在微服务架构中,往往由多个微服务共同支撑前端请求,如果涉及到用户状态就需要考虑分布式 Session 管理问题,比如用户登录请求分发在服务器 A,用户购买请求分发到了服务器 B, 那么服务器就必须可以获取到用户的登录信息,否则就会影响正常交易。因此,在分布式架构或微服务架构下,必须保证一个应用服务器上保存 Session 后,其他应用服务器可以同步或共享这个 Session。目前主流的分布式 ...转载 2019-06-19 11:40:24 · 159 阅读 · 0 评论 -
第 4-4 课:Spring Boot 中使用 Cache 缓存的使用
我们知道绝大多数的网站/系统,最先遇到的一个性能瓶颈就是数据库,使用缓存做数据库的前置缓存,可以非常有效地降低数据库的压力,从而提升整个系统的响应效率和并发量。以往使用缓存时,通常创建好缓存工具类,使用时将对应的工具类注入,操作工具类在前端处理缓存的逻辑。其实这种方式是低效的,大部分使用缓存的场景是基于数据库的缓存,这类缓存场景的逻辑往往是:如果缓存中存在数据,就从缓存中读取,如果缓存中不存在...原创 2019-06-19 11:40:18 · 199 阅读 · 0 评论 -
第 4-5 课:使用 Spring Boot 操作 ActiveMQ
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。目前在生产环境中使用较多的消息队列有 ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ 等。特性异步性:将耗时的同步操作通过以发送消息的方式进行了异步化处理,减少了同步等待的时间。...转载 2019-06-19 11:40:07 · 214 阅读 · 0 评论 -
第 4-6 课:Spring Boot RabbitMQ 详解
RabbitMQ 介绍AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ 是一个开源的 AMQP 实现,服务...转载 2019-06-19 11:35:32 · 263 阅读 · 0 评论 -
第 4-7 课:Spring Boot 简单集成 MongoDB
MongoDB 如今是最流行的 NoSQL 数据库,被广泛应用于各行各业中,很多创业公司数据库选型就直接使用了 MongoDB,但对于大部分公司,使用 MongoDB 的场景是做大规模数据查询和离线分析。MongoDB 一经推出就受到了广大社区的热爱,可以说是对程序员最友好的一种数据库,下面我们来了解一下它的特性。MongoDB 简介MongoDB(Humongous,庞大)是可以应用于各...原创 2019-06-19 11:34:55 · 151 阅读 · 0 评论 -
第 4-8 课:Spring Boot 集成 ElasticSearch
ElasticSearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库——无论是开源还是私有。ElasticSearch 使用 Java 编写的,它的内部使用的是 Lucene 做索引与搜索,它的目的是使全文检索变得简单,通过隐藏 Lucene 的复杂性,取而代之提供了一套简单一致的 R...转载 2019-06-19 11:34:40 · 179 阅读 · 0 评论 -
springBoot 与线程池 整合
package com.lyc.pay.config;import java.lang.reflect.Method;import java.util.concurrent.Executor;import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;import org.springframewo...原创 2019-05-30 15:43:24 · 1704 阅读 · 0 评论 -
第 3-5 课:Spring Data JPA 的高级用法
上节课介绍了 Spring Data JPA 的使用方式和基本查询,常用的增、删、改、查需求 Spring Data JPA 已经实现了。但对于复杂的数据库场景,动态生成方法不能满足,对此 Spring Data JPA 提供了其他的解决方案,这就是这节课的主要内容。自定义 SQL 查询使用 Spring Data 大部分的 SQL 都可以根据方法名定义的方式来实现,但是由于某些原因必须使...转载 2019-06-19 11:41:50 · 196 阅读 · 0 评论 -
第 3-4 课: Spring Data JPA 的基本使用
Spring Data JPA 是 Spring Boot 体系中约定优于配置的最佳实现,大大简化了项目中数据库的操作。从本课开始将会从 JPA 的由来开始讲解,什么是 JPA、Spring Boot JPA 的实现,以及如何使用。概念JPA 由来ORM 框架能够将 Java 对象映射到关系数据库中,能够直接持久化复杂的 Java 对象。ORM 框架的出现,可以让开发者从数据库编程中解...转载 2019-06-19 11:41:57 · 167 阅读 · 0 评论 -
第 3-3 课:如何优雅地使用 MyBatis 注解版
自从 Java 1.5 开始引入了注解,注解便被广泛地应用在了各种开源软件中,使用注解大大地降低了系统中的配置项,让编程变得更为优雅。MyBatis 也顺应潮流基于注解推出了 MyBatis 的注解版本,避免开发过程中频繁切换到 XML 或者 Java 代码中,从而让开发者使用 MyBatis 会有统一的开发体验。因为最初设计时,MyBatis 是一个 XML 驱动的框架,配置信息是基于 XM...转载 2019-06-19 11:42:03 · 114 阅读 · 0 评论 -
第 2-1 课:Spring Boot 对基础 Web 开发的支持(上)
自从 B/S 架构(Browser/Server,浏览器/服务器模式)被发明以来,因为其具有跨平台、易移植、方便使用等特点,迅速地成为了技术架构的首选,前端 Web 技术迅速发展起来。人们利用前端 Web 技术构建各种应用场景,如电子商务平台、在线聊天室、后台管理系统等。页面技术也从最初的 JSP 演化为现在的模板引擎;信息交互由以前的 XML 发展到现在更流行的 JSON;Spring Filt...转载 2019-06-19 11:42:08 · 141 阅读 · 0 评论 -
Spring Boot 对基础 Web 开发的支持(下)
数据校验在很多时候,当我们要处理一个应用程序的业务逻辑时,数据校验是必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在 Java 应用程序中,必须要对输入进来的数据从语义上分析是有效的,也就是数据校验。输入验证是最重要的 Web 开发任务之一,在 Spring MVC 中有两种方式可以验证输入:一种是 Spring 自带的验证框架,另外一种是利用 ...转载 2018-12-04 20:17:14 · 152 阅读 · 0 评论 -
第 2-2 课:Spring Boot 项目中使用 JSP
JSP(Java Server Pages,Java 服务器页面)是一个简化的 Servlet 设计,它是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术类似 ASP 技术,它是在传统的网页 HTML(标准通用标记语言的子集)文件(.html)中插入 Java 程序段(Scriptlet)和 JSP 标记(tag),从而形成 JSP 文件,后...转载 2019-06-19 11:39:12 · 268 阅读 · 0 评论 -
第 2-3 课:模板引擎 Thymeleaf 基础使用
模板引擎模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的 HTML 文档。模板引擎的实现方式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(子字符串)替换,便生成了最终需要的业务数据(如网页)。“置换型”模板引擎实现简单,但其效率低下,无法满足高负载的应用需求(比如有海量访...转载 2019-06-19 11:39:21 · 243 阅读 · 0 评论 -
第 2-4 课:模板引擎 Thymeleaf 高阶用法
上一课我们介绍了 Thymeleaf 最常用的使用语法,这一课我们继续学习 Thymeleaf 高阶的使用方式,并对这些使用方式进行总结分类。其实上一课的内容,基本可以满足 Thymeleaf 80% 的使用场景,高阶用法会在某些场景下提供更高效、便捷的使用方式。内联 [ [ ] ]如果不想通过 th 标签而是简单地访问 model 对象数据,或是想在 javascript 代码块里访问 ...转载 2019-06-19 11:39:28 · 296 阅读 · 0 评论 -
第 2-5 课:Thymeleaf 页面布局
页面布局就是对前端的页面进行划分区域,每个区域有不同的职责,布局是为了更好地重复利用前端代码,避免大量重复性的劳动。在现有的前端系统中,页面布局成了前端开发最重要的工作之一,Thymeleaf 在设计之初对页面布局就有考虑,通过 Thymeleaf 的相关语法可以很容易地实现对前端页面布局。快速入手Spring Boot 2.0 将布局单独提取了出来,需要单独引入依赖:thymeleaf-...转载 2019-06-19 11:39:35 · 565 阅读 · 0 评论 -
第 2-6 课:使用 Spring Boot 和 Thymeleaf 演示上传文件
在互联网行业中上传文件是一个高频的使用场景,常用的案例有上传头像、上传身份证信息等。Spring Boot 利用 MultipartFile 的特性来接收和处理上传的文件,MultipartFile 是 Spring 的一个封装的接口,封装了文件上传的相关操作,利用 MultipartFile 可以方便地接收前端文件,将接收到的文件存储到本机或者其他中间件中。首先通过一个小的示例来了解 Spr...转载 2019-06-19 11:39:45 · 567 阅读 · 0 评论 -
第 2-7 课:使用 Spring Boot 上传文件到 FastDFS
什么是 FastDFSFastDFS 是一个开源的轻量级分布式文件系统,它解决了大数据量存储和负载均衡等问题,特别适合以中小文件(建议范围:4 KB < file_size < 500 MB)为载体的在线服务,如相册网站、视频网站等。在 UC 基于 FastDFS 开发向用户提供了网盘、社区、广告和应用下载等业务的存储服务。FastDFS 由 C 语言开发,支持 Linux、F...转载 2019-06-19 11:38:41 · 242 阅读 · 0 评论 -
第 2-8 课:Spring Boot 构建一个 RESTful Web 服务
现在越来越多的企业推荐使用 RESTful 风格来构建企业的应用接口,那么什么是 RESTful 呢?什么是 RESTfulRESTful 是目前最流行的一种互联网软件架构。REST(Representational State Transfer,表述性状态转移)一词是由 Roy Thomas Fielding 在他 2000 年博士论文中提出的,定义了他对互联网软件的架构原则,如果一个架...转载 2019-06-19 11:40:42 · 132 阅读 · 0 评论 -
第 2-9 课:使用 Swagger 2 构建 RESTful APIs
什么是 SwaggerSwagger 是一系列 RESTful API 的工具,通过 Swagger 可以获得项目的一种交互式文档,客户端 SDK 的自动生成等功能。Swagger 的目标是为 REST APIs 定义一个标准的、与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下,能发现和理解各种服务的功能。当服务通过 Swagger 定义,消费者就能...转载 2019-06-19 11:40:51 · 355 阅读 · 0 评论 -
第 2-10 课:使用 Spring Boot WebSocket 创建聊天室
什么是 WebSocketWebSocket 协议是基于 TCP 的一种网络协议,它实现了浏览器与服务器全双工(Full-duplex)通信——允许服务器主动发送信息给客户端。以前,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每 1 秒),由浏览器对服务器发出 HTTP 请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器...转载 2019-06-19 11:40:58 · 160 阅读 · 0 评论 -
第 3-1 课:Spring Boot 使用 JDBC 操作数据库
JDBC(Java Data Base Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。说白了 JDBC 就是一套 Java 访问数据库的 API 规范,利用这套规范屏...转载 2019-06-19 11:41:06 · 168 阅读 · 0 评论 -
第 3-2 课:如何优雅地使用 MyBatis XML 配置版
MyBatis 是现如今最流行的 ORM 框架之一,我们先来了解一下什么是 ORM 框架。ORM 框架对象关系映射(Object Relational Mapping,ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。为什么需要 ORM?当你开发一个应用程序...转载 2019-06-19 11:41:16 · 350 阅读 · 0 评论 -
springboot2.0整合redis
pom.xml<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId>...原创 2018-11-12 09:30:30 · 484 阅读 · 0 评论