Spring全家桶
文章平均质量分 92
Spring全家桶以Spring家族为主,包括Spring、SpringMVC、SpringBoot、SpringCloud等
潮汐先生
Java海洋中迷失的空指针
展开
-
SpringBoot.14.SpringBoot使用jsp模板打包成jar
SpringBoot.14.SpringBoot使用jsp模板打包成jar前言实现步骤1.pom.xml2.打包3.上传至服务器4.运行5.测试前言关于SpringBoot使用jsp模板打包成jar的方式运行在文章SpringBoot.08.SpringBoot文件上传与下载中我们简单的提到过一次,这里我们来详细记录一下过程和注意事项实现步骤这里我们就以文章SpringBoot.12.SpringBoot中的拦截器中的Module为例进行打包测试1.pom.xml<?xml version原创 2021-10-31 20:34:24 · 1443 阅读 · 0 评论 -
SpringBoot.12.SpringBoot中的拦截器
SpringBoot.12.SpringBoot中的拦截器前言拦截器介绍具体实现1.新建项目2.MyInterceptor01.java3.配置拦截器4.InterceptorController.java5.测试多个拦截器的执行顺序1.MyInterceptor01.java2.MyInterceptor02.java3.MyWebMvcConfigurer.java4.测试前言拦截器(Interceptor)主要是针对特定处理器进行拦截的。也就是说它拦截的对象是我们的Controller请求。我们可原创 2021-10-31 20:29:39 · 802 阅读 · 2 评论 -
SpringBoot.11.IDEA中如何快速复制当前父项目中的一个Module为新的项目
SpringBoot.11.IDEA中如何快速复制当前父项目中的一个Module为新的项目实现步骤1.复制项目2.引入项目3.配置项目4.测试IDEA中如何快速复制当前父项目中的一个Module为新的项目呢?这个做法其实跟我们之前的文章Springboot.10.IDEA中如何快速复制一个Maven构建的springboot项目大致相同,部分设置微调即可实现步骤1.复制项目下面一节我们讲拦截器,代码基于上个Modulespringboot-07-file,所以我们复制该Module,并修改名称为sp原创 2021-10-24 08:00:00 · 1425 阅读 · 0 评论 -
SpringBoot.08.SpringBoot文件上传与下载
SpringBoot.08.SpringBoot文件上传与下载前言文件上传1.新建Module2.项目配置3.pom.xml4.application-dev.yml5.设置Working directory6.upload.jsp7.File相关7.1 FileController.java7.2 FileConstants.java7.3 FileUtils.java8.MyWebMvcConfigurer.java9.测试9.1 windows下9.2 linux下文件下载1.download.jsp原创 2021-09-17 10:57:31 · 915 阅读 · 4 评论 -
SpringBoot.07.SpringBoot切面编程之AOP
SpringBoot.07.SpringBoot切面编程之AOP前言AOP介绍概念纵向集成体系横向抽取机制相关术语AOP使用小试牛刀1.新建Module2.项目配置3.pom.xml4.MyAspect.java5.测试5.1 正常运行5.2 方法中抛出异常注解方式1.MyAspectAnnotations.java2.MyAspect2.java3.UserServiceImpl.java4.测试前言SpringBoot是对spring和springmvc的进一步封装,因此在SpringBoot中同样原创 2021-09-17 09:29:49 · 805 阅读 · 1 评论 -
SpringBoot.06.SpringBoot日志管理
SpringBoot.06.SpringBoot日志管理SpringBoot日志介绍概念日志的级别日志的分类SpringBoot日志基本使用1.新建Module2.项目配置3.配置日志SpringBoot日志切割1.application.yml2.application-dev.yml3.logback-dev.xml4.测试SpringBoot日志介绍概念在SpringBoot框架中默认集成的日志处理框架是Logback。Logback是由log4j创始人设计的又一个开源日志组件。目前logbac原创 2021-09-13 15:30:10 · 399 阅读 · 5 评论 -
SpringBoot.05.SpringBoot本地测试与热部署
SpringBoot.05.SpringBoot本地测试与热部署引言本地测试1.pom.xml2.UserTest.java3.测试热部署工具1.pom.xml2.设置IDEA支持自动编译3.开启允许在运行过程中修改文件4.测试引言往往在开发过程中业务代码可能非常复杂,需要频繁启动服务器进行测试,显得非常麻烦!这个时候使用springboot提供的本地测试将会是一个很好的解决方案!为了进一步提高开发效率,springboot为我们提供了全局项目热部署,它使得日后在开发过程中修改了部分代码以及相关配置文原创 2021-09-10 10:45:04 · 636 阅读 · 3 评论 -
SpringBoot.04.SpringBoot整合MyBatis
SpringBoot.04.SpringBoot整合MyBatis准备工作1.mapper模板2.t_user整合MyBatis1.新建Module2.pom.xml3.application.yml4.Springboot04MybatisApplication.java5.User.java6.UserMapper.java7.UserMapper.xml8.UserService9.UserController.java10.测试准备工作1.mapper模板SpringBoot集成MyBatis原创 2021-09-09 08:48:51 · 225 阅读 · 1 评论 -
SpringBoot.03.SpringBoot集成jsp
SpringBoot.03.SpringBoot集成jsp前言准备工作jsp集成案例集成步骤1.新建Module2.pom.xml3.Springboot03JspApplication.java4.application.yml5.index.jsp6.JspController.java7.测试问题分析解决方案1.springboot:run2.设置Working directory修改jsp无须重启应用前言在SpringBoot中默认推荐使用的模板引擎是Thymeleaf,但是作为传统Web开发的原创 2021-09-08 08:51:51 · 406 阅读 · 2 评论 -
SpringBoot.02.SpringBoot创建对象与属性注入
SpringBoot创建对象与属性注入前言所谓SpringBoot创建对象就是将对象交给Spring来管理。在SpringBoot中我们可以使用注解。比如我们常用的@Component及@Controller、@Service、@Repository等。不过这种方式一次只能创建一个对象;此外我们还可以使用@Configuration + @Bean的方式一次性创建多个对象。而属性注入是指我们可以将在配置文件中配置的信息注入到java文件中来使用。这样的使用场景在实际开发中是普遍存在的。比如我们要集成高原创 2021-09-07 09:17:34 · 3492 阅读 · 1 评论 -
SpringBoot.01.SpringBoot概述及基本环境搭建
SpringBoot概述及基本环境搭建SpringBoot概述引言SpringBoot优势SpringBoot约定环境搭建环境要求准备工作1.新建项目空间2.配置Maven3.配置Log Support创建项目的两种方式maven方式搭建1.新建Module2.pom.xml3.application.yml4.SpringBoot01MavenApplication.java5.TestController.java6.测试Spring initializr方式1.新建Module2.pom.xml3.a原创 2021-09-06 11:17:58 · 413 阅读 · 1 评论 -
SpringBoot入门极简教程开篇
小白入门SpringBoot极简教程开篇前言小白入门SpringBoot极简教程前言SpringBoot也使用了很长一段时间了,最初接触SpringBoot都是一边做项目一边查资料,没有系统的学习和整理过。这也是为什么会有这个系列–小白入门SpringBoot极简教程。本篇博文只是这个系列文章的索引,方便日后查阅之用。小白入门SpringBoot极简教程SpringBoot.01.SpringBoot概述及基本环境搭建SpringBoot.02.SpringBoot创建对象与属性注入Spring原创 2021-09-06 11:10:30 · 365 阅读 · 1 评论 -
SpringCloud整合Alibaba环境搭建
SpringCloud整合Alibaba环境搭建准备工作环境要求JDK 1.8.+、Maven 3.6.3、springboot 2.2.5、springcloud Hoxton+、springcloud alibaba 2.2.1.RELEASE整合思路服务注册中心 nacos统一配置中心 nacos服务熔断组件 sentinel服务间通信组件 openfeign + ribbon 服务网关组件 gateway启动服务在上面整个思路里面可以看到我们需要nacos原创 2021-08-30 13:59:50 · 1520 阅读 · 1 评论 -
Sentinel.04.Sentinel之热点规则
Sentinel之热点规则概念@SentinelResource小试牛刀TestController.javadefaultFallbackfallback流量控制熔断降级热点参数限流高级选项概念何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制热点参数限流会统计传入参数中的热点参数,并根据原创 2021-08-25 10:54:17 · 877 阅读 · 3 评论 -
Sentinel.03.Sentinel之熔断规则
Sentinel之熔断规则概述熔断(降级)策略慢调用比例概念测试异常比例概念测试异常数概念测试概述除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时、异常比例升高、异常数堆积)对这个资源的调用进行限制,让请求快速失败从而避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内会对该资源的调用自动原创 2021-08-19 11:26:35 · 3457 阅读 · 7 评论 -
Sentinel.02.Sentinel之流量控制
Sentinel.02.Sentinel之流量控制前言概述定义规则 (FlowRule)基于QPS/并发数的流量控制小试牛刀新增规则簇点链路流控规则流控测试并发线程数流量控制小试牛刀新增规则流控测试新建线程组新建http请求启动测试流控模式直接模式关联模式TestController.java新增规则测试链路模式流控效果直接拒绝Warm Up匀速排队前言在上一节中我们知道Sentinel 支持以下几种规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则 和 热点参数规则。Sentinel原创 2021-08-17 17:25:15 · 385 阅读 · 1 评论 -
Sentinel.01.Sentinel简介及简单使用
Sentinel简介及简单使用简介Sentinel是什么Sentinel 基本概念资源规则Sentinel 功能和设计理念流量控制熔断降级什么是熔断降级熔断降级设计理念系统负载保护Sentinel 是如何工作的Sentinel DashBoard准备工作下载jar运行Sentinel访问控制台后Sentinel保护微服务1.新建Module2.pom.xml3.application.properties4.SentinelApplication.java5.TestController.java6.测试可原创 2021-08-06 12:30:13 · 475 阅读 · 2 评论 -
Nacos.04.集群搭建及高可用方案
Nacos集群搭建及高可用方案前言集群架构图集群规划集群搭建准备工作Nginx服务器Nacos服务器清除数据集群搭建1.拷贝nacos012.修改nacos01端口号3.添加集群节点4.拷贝nacos02、nacos035.Nginx负载均衡测试启动集群nacos client1.application.properties2.启动client前言集群架构图首先我们来看一下官网的集群架构图,如下:DNS:域名地址(防止因ip或者端口号变化而无法访问)SLB:是负载均衡,这里我们会使用Nginx原创 2021-08-03 14:29:13 · 1321 阅读 · 1 评论 -
Nacos.03.的数据持久化
Nacos的数据持久化前言数据持久化到mysql1.准备工作2.nacos-mysql.sql2.1 新建数据库2.2 拷贝nacos-mysql.sql2.3 初始化数据库3.application.properties4.重启nacos5.新增配置文件5.1 新增命名空间5.2 新增配置configclient-dev.propertiesconfigclient-prod.properties6.测试前言我们前面是将Nacos安装在单独的一台服务器中作为独立的服务对外提供服务的。每次我们重新启动N原创 2021-08-02 16:09:39 · 339 阅读 · 2 评论 -
Nacos.02.组件之统一配置中心
Nacos组件之统一配置中心前言介绍核心概念命名空间GroupData IDconfigclient-profile.propertiesConfig Client开发1.新建Module2.pom.xml3.bootstrap.properties4.ConfigClientApplication.java5.TestController.java6.测试历史版本前言前面我们提到过Nacos是alibaba提供的既可以作为服务注册中心也可以作为统一配置中心的组件。上一节我们已经了解了其作为服务注册中心原创 2021-07-26 11:02:03 · 896 阅读 · 1 评论 -
Naco.01.组件之服务注册与发现
服务注册与发现组件之Nacos简介Nacos安装1.准备工作2.Nacos下载3.上传并解压缩4.启动Nacos5.nacos管理界面Nacos作为服务注册与发现中心1.新建module2.pom.xml3.application.properties4.NacosClientApplication.java5.启动简介Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理Nacos就是微服务架构中服务注册中心原创 2021-07-26 10:52:36 · 216 阅读 · 1 评论 -
Spring Cloud Alibab简介及初始环境搭建
Spring Cloud Alibab简介及初始环境搭建Spring Cloud Alibaba简介Spring Cloud Alibaba组件初始环境搭建1.新建Module2.pom.xmlSpring Cloud Alibaba简介Spring Cloud Alibaba provides a one-stop solution for distributed application development. It contains all the components required to d原创 2021-07-26 10:48:29 · 447 阅读 · 1 评论 -
SpringCloud Alibaba开篇
SpringCloud Alibaba开篇SpringCloud是使用Netflix的开源组件或者基于Netflix的开源组件来进行微服务框架的研发,但是随着Netfix开源组件不断地进入到维护模式,原创 2021-07-26 10:46:40 · 209 阅读 · 1 评论 -
12.统一配置中心Config自动刷新组件之Bus
统一配置中心Config自动刷新组件之Bus前言什么是Bus刷新原理刷新实现安装RabbitMQConfig Server端配置1.pom.xml2.application.properties3.重新启动Config ServerConfig Client端配置1.pom.xml2.修改配置文件3.bootstrap.properties4.测试开启Server端的web端点暴露1.application.properties2.重新启动Config Server3.执行POST接口4.测试WebHook原创 2021-07-16 11:47:07 · 235 阅读 · 8 评论 -
11.Config统一配置中心之手动刷新
Config统一配置中心之手动刷新前言手动刷新配置实现步骤1.@RefreshScope2.TestController.java3.开启所有web端点暴露4.启动5.修改远端配置文件6.手动刷新配置文件7.测试存在的问题前言在上篇文章10.微服务全局配置中心之Config中我们实现了统一配置中心。但是存在一个问题:实际开发中项目的配置文件需要经常变动,这个时候我们在远端修改了配置文件之后就需要挨个重启微服务中的节点(客户端)。有没有不需要重启节点(客户端)的方法呢?答案是肯定的。SpringCloud原创 2021-07-14 11:23:21 · 485 阅读 · 1 评论 -
10.微服务全局配置中心之Config
微服务全局配置中心之Config什么是ConfigConfig Server开发gitee仓库登录|注册创建仓库拷贝地址Server端开发1.新建Module2.pom.xml3.ConfigServerApplication.java4.application.properties5.启动Config Client开发1.新建Module2.pom.xml3.ConfigClientApplication.java4.TestController.java5.bootstrap.properties6.配原创 2021-07-13 13:57:35 · 770 阅读 · 3 评论 -
09.微服务网关组件之Gateway
微服务网关组件之Gateway服务网关概念作用常用网关zuulGatewayGateway的实现1.新建Module2.pom.xml3.GatewayApplication.java4.application.yml5.测试GateWay负载均衡Demo存在的问题如何实现负载均衡1.准备工作2.集成Ribbon3.application.yml4.测试网关的断言和过滤断言(Route Predicate Factories)1.The Path Route Predicate Factories2.The原创 2021-07-05 10:17:07 · 324 阅读 · 4 评论 -
08.微服务防雪崩利器之Hystrix
微服务防雪崩利器之Hystrix前言Hystrix概念熔断条件断路器流程简单使用1. 启动consul2.新建Module3.pom.xml4.application.properties5.HystrixApplication.java6.HystrixController.java7.测试OpenFeign+Hystrix实现服务降级正常访问无降级1.新建Module2.pom.xml3.application.properties4.HystrixOpenFeignApplication.java5.原创 2021-06-10 17:30:34 · 134 阅读 · 1 评论 -
07.服务雪崩、熔断与降级
服务雪崩、熔断与降级前言服务雪崩概念原因服务熔断概念熔断过程服务降级概念服务熔断和降级总结1.共同点2.不同点3.总结前言前面我们已经学习了Eureka、consul、Ribbon与OpenFeign,后面我们要学习服务熔断利器Hystrix。学习Hystrix之前我们首先要明确三个概念:服务雪崩、服务熔断、服务降级服务雪崩概念在微服务之间进行服务调用时由于某一个服务故障,导致级联服务故障的现象,称为雪崩效应。雪崩效应描述的是提供方不可用,导致消费方不可用并将不可用逐渐放大的过程。原因假如存在原创 2021-06-10 14:27:48 · 405 阅读 · 1 评论 -
06.springcloud服务通信组件之OpenFeign
springcloud服务通信组件之OpenFeign前言OpenFeign简介OpenFeign简单使用准备工作CATEGORY1.新建Module2.pom.xml3.application.properties4.CategoryApplication.java6.ProductClient.java5.CategoryController.javaPRODUCT1.新建Module2.pom.xml3.application.properties4.ProductApplication.java5.原创 2021-06-07 12:32:08 · 276 阅读 · 4 评论 -
05.负载均衡之Ribbon
负载均衡之Ribbon前言启动consulORDER服务1.OrderController2.ORDER集群USER服务1.UserController2.启动USER测试Ribbon1.Ribbon介绍2.执行流程3.代码实现1.pom.xml2.客户端实现discovery clientUserController测试loadBalanceClientUserController测试@loadBalancedBeanConfigUserController测试Ribbon总结Ribbon原理Ribbon原创 2021-06-03 11:29:44 · 183 阅读 · 1 评论 -
04.服务间的通信方式之RestTemplate
服务间的通信方式之RestTemplate前言服务间的通信方式HTTP Rest方式实现服务间通信准备工作USER1.新建module2.pom.xml3.application.properties4.UserApplication5.UserControllerORDER1.新建module2.pom.xml3.application.properties4.OrderApplication5.OrderController启动consul启动服务测试前言前面我们说了微服务是基于单体应用围绕业务进行原创 2021-06-01 17:45:12 · 414 阅读 · 2 评论 -
03.服务注册中心之consul
服务注册中心之consul前言介绍安装1.下载consul2.安装consul3.配置环境变量4.启动consul5.consul的管理界面Consul的客户端开发1.新建Module2.pom.xml3.application.properties4.ConsulClientApplication5.启动6.引入健康检查前言上篇文章我们介绍了Netflix eureka。我们也知道eureka目前新版本已经停止更新了,并且eureka作为服务注册中心对于程序员来讲需要代码形式开发一个服务注册中心。相对原创 2021-05-28 14:54:47 · 808 阅读 · 1 评论 -
02.服务注册中心之Eureka
服务注册中心之Eureka前言什么是服务注册中心常用的注册中心EurekaEureka Server1.新建Module2.pom.xml3.EurekaServerApplication4.application.properties5.启动serverEureka Client1.新建module2.pom.xml3.EurekaClientApplication4.application.properties5.启动clientEureka的自我保护机制1.概念2.移除服务的时机心跳丢失比例超过设定的原创 2021-05-27 14:57:57 · 340 阅读 · 2 评论 -
01.微服务、springcloud简介
微服务、springcloud简介什么是微服务为什么需要微服务单体架构1.优点2.缺点微服务架构1.优点2.缺点微服务架构解决方案1.Dubbo(阿里)2.SpringCloud什么是SpringCloudSpringCloud架构SpringCloud版本已发行版本版本选择SpringCloud初始环境搭建创建父项目编写父项目pom.xml什么是微服务微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署运行在自己的进程里,基于分布式的管理。那么通俗点来讲 – 微服务是一种架构,这种架构是将原创 2021-05-20 22:56:50 · 258 阅读 · 3 评论 -
04.Maven聚合工程的搭建
Maven聚合工程的搭建前言准备工作搭建步骤demo_parentdemo_commons1.新建module2.新建User.javademo_model1.新建module2.修改pom.xml3.新建Dao和Service(impl)4.新建mapperdemo_web1.新建module2.新建application.properties3.修改pom.xml4.新建Controller5.新建jspuser_list.jspuser_add.jspuser_detail.jsp6.DemoWebA原创 2021-05-20 15:14:27 · 280 阅读 · 1 评论 -
03.Postman的使用
Postman的使用前言下载与安装准备工作Postman使用create collectionAdd RequestGet RequestPost Requestpost formPost filePatch RequestDelete RequestEnvironmentsAdd Environmenthow to use前言其实对于写不写这篇博客我一直很纠结,其原因就是作为一款接口调试工具,基本上大多数的后端程序员都会使用,相对于大家来说也都比较熟悉。但是昨天看了一位博主的视频中提到了postman原创 2021-05-19 21:01:14 · 1258 阅读 · 4 评论 -
02.自动生成代码插件Easy Code的使用
自动生成代码插件Easy Code的使用自动生成代码插件Easy Code的使用前言安装插件使用初始化项目新建项目修改pom.xml修改application.propertiesIDEA连接数据库生成代码修改application.properties运行自动生成代码插件Easy Code的使用前言Easy Code是IDEA提供一个免费插件,顾名思义该插件能使编码变得简单。怎么个简单法呢?对于单表操作,他可以自动为我们生成entity,controller,service,dao和mapper而无原创 2021-05-19 17:16:23 · 1150 阅读 · 1 评论 -
01.springboot集成mybatis与jsp
springboot集成mybatis与jsp引言什么是springbootspringboot特点springboot快速搭建项目新建项目springboot_mybatis_jsp项目配置配置项目目录配置工作目录(working directory)配置pom.xml配置application.properties编写代码建表t_user编写User.java编写UserDao编写UserMapper.xml编写UserService.java、UserServiceImpl.java编写Control原创 2021-05-13 11:44:32 · 311 阅读 · 2 评论 -
SpringCloud开篇
SpringCloud萌新进化之路前言springboot回顾springcloud专题前言纵观当今编程界什么最火–当然是微服务了!SpringCloud又是当前最火的微服务架构,作为程序猿的我们如果不会微服务就有点说不过去了。所以如菜鸟的我果断抽时间学习一下。为什么叫萌新呢?因为我确实一点都不懂,对于我来说学习SpringCloud的过程应该就是萌新的进化之路吧。为了更好的掌握以及后面自己的查询,该系列教程我会详细记录所学内容,如果有像我一样的菜鸟或者萌新,不放一起来学习ヾ(◍°∇°◍)ノ゙学习原创 2021-05-13 11:46:33 · 181 阅读 · 1 评论