SpringBoot 10.整合zk+dubbo

ZooKeeper

我们选择ZooKeeper作为dubbo的注册中心

概述

Apache ZooKeeper是由集群(节点组)使用的一种服务,用于在自身之间协调,并通过稳健的同步技术维护共享数据。ZooKeeper本身是一个分布式应用程序,为写入分布式应用程序提供服务。

阅读全文

SpringBoot 9.异步调用@Async

什么是“异步调用”?

“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。

阅读全文

SpringBoot 8.定时任务@Scheduled

在日常业务开发中,我们经常遇到一些需要定时执行的任务,比如定时给用户发短信发邮件,定时检查某个指标或参数是否达标等。

Spring Boot 中的定时任务

创建定时任务

在Spring Boot应用中创建定时任务非常简单。只要以下两步就可以:

阅读全文

SpringBoot 7.1.RabbitMQ进阶使用

本节,我们进一步的了解如何在Spring Boot中使用RabbitMQ。

RabbitMQ基本概念

结构图

mq1

阅读全文

SpringBoot 7.整合RabbitMQ

本节,我们将整合RabbitMQ作为我们项目的消息中间件。暂时我们只做单机配置。

本章源码

阅读全文

SpringBoot 6.整合Redis Cache和session

这一节,我们将整合redis,并用将session交由redis保存。为之后的集群和分布式开发做准备。

整合redis

配置

这里介绍redis的单机配置,集群配置之后再说。默认你已安装了redis。

阅读全文

SpringBoot 5.模块拆分

为了之后更好的扩展我们的程序,这节我们将我们的项目拆分出若干个子模块。

先看下我们未拆分前的项目:

jiegou6

阅读全文

SpringBoot 4.过滤器、监听器、拦截器

过滤器

使用@WebFilter创建:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@WebFilter(filterName = "MyFilter1", urlPatterns = "/*")
@Slf4j
public class MyFilter1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info("MyFilter1 初始化");
}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
log.info("MyFilter1 过滤操作");
//操作完必须调用下面这个方法
filterChain.doFilter(servletRequest, servletResponse);
}

@Override
public void destroy() {
log.info("MyFilter1 销毁");
}
}

阅读全文

SpringBoot 3.整合Mybatis

整合Mybatis和mysql

pom.xml加入依赖

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 整合mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

阅读全文

SpringBoot 2.完善一下

统一响应数据格式

我们先不涉及页面的设计,之后的接口都以JSON格式返回数据。那么,我们需要建一个响应数据实体类,统一请求返回的数据格式。

阅读全文