玩转SpringBoot&SpringCloud系列
该专栏主要涵盖了SpringBoot及SpringCloud开发过程中的痛点总结,包括如何集成redis、mq等中间件,还囊括了在SpringBoot中如何恰到好处的运用Java设计模式, 如何解决分布式事务及如何设计高可用的SpringCloud的微服务架构,欢迎订阅我的专栏,希望对您有所帮助!
老张家的独苗
微信搜索「老张家的独苗」,回复关键字「资料」获取海量学习资源。我是张星,CSDN博客专家,CSDN内容合伙人,"老张家的独苗"公号作者,GitChat付费专栏作者,拥有5+年的技术TL的项目管理经验,1000+面试经验。
展开
-
SpringBoot中Velocity动态模版引擎
Velocity模版引擎简介Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity 应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity基础语法1."#"用来标识Velocity的关键字,包括#set、原创 2021-09-09 11:29:32 · 1126 阅读 · 0 评论 -
SpringBoot中Lucene索引的导入
前言lucene是一款强大的支持全文索引的工具包,注意这里是工具包;而我们熟知的solr、elasticsearch都是基于lucene开发的独立出来的中间件服务,不是工具包。全文索引导入方案在应用启动的时候,我们加载lucene索引导入本地服务器某文件夹下;然后在项目的定时器中定时更新本地索引库。实现方案添加依赖 <!--lucene高亮显示 --> <dependency> <groupId>org.ap原创 2021-03-08 16:15:08 · 360 阅读 · 0 评论 -
SpringCloud之zuul网关路由
1.场景还原 在微服务架构中,zuul作为springcloud重要的网关路由组件,为前端统一的ip请求提供了极大的便捷;笔者在实际项目中,通过微服务模块名路由到指定的节点模块2.实现方案①pom依赖<!--网关--><dependency> <groupId>org.springframework.cloud</grou...原创 2018-08-28 14:33:20 · 535 阅读 · 0 评论 -
SpringCloud系列之feign服务间远程调用
1.场景还原 在微服务架构中,服务间调用是家常便饭;如何进行服务间远程调用呢?今天笔者就springcloud中feign远程调用给大伙讲解一番,希望能够有所帮助2.实现方案①加入pom依赖<dependency> <groupId>org.springframework.cloud</groupId> <artif...原创 2018-08-11 16:09:39 · 4813 阅读 · 2 评论 -
SpringCloud系列之eurake集群
1.场景还原 通俗的讲,eurake在微服务架构中最大的功能就是将项目划分的微服务收集起来,供服务间相互调用;如果eurake服务挂了,可想而知,整个项目的服务调用势必是过眼云烟;今天笔者就eurake集群做个详解,仅供参考。2.实现方案eurake服务的搭建在上篇笔者已经介绍,链接教程:https://blog.csdn.net/zhangxing52077/article/...原创 2018-08-09 15:23:20 · 2899 阅读 · 0 评论 -
SpringCloud系列之eurake注册中心
1.场景还原 在分布式横行的互联网时代,springcloud占据了分布式半壁江山;笔者就eurake注册中心开篇展开对springcloud系列教程的讲解,希望能给需要的小伙伴些许指导2.实现方案①搭建springcloud环境,配置pom依赖<properties> <project.build.sourceEncoding>UTF-8&...原创 2018-08-07 16:30:44 · 1912 阅读 · 0 评论 -
SpringBoot工程如何打war包进行云部署
1.场景分析 很多同学都知道了,springboot工程是自带tomcat运行的,这样打jar进行云部署即可,但是如何进行打war包进行云部署呢?今晚笔者将详细剖析分解步骤2.实现方案①pom依赖 org.springframework.boot spring-boot-starter-web排除内置的tomcat--> org.springframe原创 2017-08-30 20:12:11 · 588 阅读 · 0 评论 -
elasticsearch之全文搜索
1.场景还原 近期,笔者项目中需要通过关键字来搜索与之相关的数据,es的全文搜索终于派上用场了!2.准备步骤①原理分析: es主要采用倒排索引,即每一个文档都对应一个ID。倒排索引会按照指定语法对每一个文档进行分词,然后维护一张表,列举所有文档中出现的terms以及它们出现的文档ID和出现频率。搜索时同样会对关键词进行同样的分词分析,然后查表得到结果。②先下载与...原创 2018-11-21 20:30:39 · 766 阅读 · 0 评论 -
elasticsearch在SpringBoot中的搜索应用
1.需求分析 近期,笔者项目中提出这样的需求:在一定的距离范围内,乘客搜索附近车主的订单列表;这条需求最关键的点在于在一定范围内,并且还得计算附近车主距离乘客当前位置多少公里;笔者思虑仅仅依赖数据库势必会导致搜索性能低下,甚至会加重mysql数据库的请求压力,于是笔者顺理成章的选择了高可用的elasticsearch2.集成方案①elasticsearch的pom依赖<dependenc...原创 2018-06-09 12:00:30 · 1029 阅读 · 0 评论 -
redis分布式锁的正确姿势
1.需求分析 笔者的项目中有个签到功能:一个用户每天只能签到一次;但是在并发的情况下,一个用户可能一天能签到数次;在这种情况下,笔者最先想到的就是运用redis的分布式锁解决该问题2.redis分布式锁①redis中的setnx具备天然的锁机制;如果redis中存在key,则返回0,存储失败;不存在,则返回1,存储成功;②获取redis分布式锁的正确姿势private static fina...原创 2018-03-08 15:29:07 · 3269 阅读 · 2 评论 -
Redis在SpringBoot中的应用
1.场景还原 redis如何在java工程中应用呢?很多可能也遇到同样的问题,今天笔者就redis如何在springboot中的配置作一番讲解,希望对后来的学习者有所帮助。2.reids在java工程中的配置①添加redis依赖 org.springframework.boot spring-boot-starter-redis②在applicatio原创 2017-06-05 14:16:24 · 3718 阅读 · 2 评论 -
SpringBoot参数花式校验
前言对于参数检验这块,如果使用不当,对于程序猿编码来说,可能会出现大量的冗余或繁琐的判空代码,这种代码在code review中是不期望看到的;如何优雅的实现参数校验呢?实现方案定义入参param body@Data@ApiModel(value = "用户信息",description = "用户信息")public class UserParam{ @ApiModelProperty(value = "用户ID", name = "userId") // 这里的mes原创 2021-01-08 17:34:31 · 261 阅读 · 1 评论 -
SpringCloud分布式事务处理方案
1.场景还原 笔者在公司最近的一个项目采用springcloud框架搭建微服务架构,这势必会引发分布式事务处理的思考,目前处理分布式主流方案tcc及消息的最终一致性;今天笔者集成github上较为流行的tx-lcn分布式处理框架,它是基于redis的一种补偿型处理方案2.实现方案①先截图,下载该框架从github上的starts数量来看,目前还是较多开发者采用了这种方案...原创 2018-08-11 17:04:54 · 65072 阅读 · 12 评论 -
SpringBoot中多数据源的配置
1.场景还原 在实际项目中,一个工程配置多个数据源很常见,工程可能会根据业务或者模块访问不同的数据库或表;今天笔者就springboot中配置多数据源作个详细的讲解2.实现方案注意:一个应用工程中有且只有一个启动类,其依赖的模块不能是带有启动类的模块①application.yml配置spring: datasource: druid: maste...原创 2018-07-27 15:11:08 · 35411 阅读 · 9 评论 -
SpringBoot中集成feign实现模块间http接口调用
1.场景还原 在多模块开发的过程中,为了避免一些重复的“硬代码”的编写,我们可以在A模块中定义一个实现类,然后在B模块中远程调用,这样减少了代码冗余及业务硬代码的重复编写2.实现方案这里以笔者项目的订单模块远程调用状态机模块接口为例,仅供参考①订单模块的pom依赖<dependency> <groupId>io.github.openfeign</gro...原创 2018-07-13 11:08:34 · 18084 阅读 · 0 评论 -
SpringBoot如何集成MQTT消息推送
1.需求分析 近期笔者项目需要用到mqtt实现消息推送,笔者选择emq作为mqtt服务器载体,上篇笔者讲解了如何在linux中安装mqtt服务,安装链接:https://blog.csdn.net/zhangxing52077/article/details/80567270,接下来笔者将讲解如何在springboot中集成mqtt2.实现方案①pom依赖<!--mqtt-->...原创 2018-06-04 16:12:16 · 26405 阅读 · 17 评论 -
SpringBoot项目的云服务器部署
1.场景还原 springboot配置相当简单,人人皆知。怎么把springboot工程部署到云服务器上呢?可能有人会说,博主你前篇不是讲了java工程的云部署把;但是我想澄清一点的是,我前篇的工程都是ssm框架搭建的,而springboot可是自带tomcat喽!这就有点麻烦....淡定,往下看2.配置解析①application.properties文件# EMBE原创 2017-06-10 22:03:43 · 40085 阅读 · 10 评论 -
前后端分离全局跨域实现
@Configurationpublic class WebAppConfigurer extends WebMvcConfigurerAdapter { private static List ORIGINS = Arrays.asList("http://localhost:8080"); //改用过滤器CorsFilter 来配置跨域,由于Filter的位置是在Interceptor之前的,问题得到解决 @Bean public CorsFilter corsF.原创 2020-05-13 18:54:01 · 467 阅读 · 0 评论 -
SpringBoot搭建Java web工程
1.场景还原 springmvc固然好用,但是配置极其麻烦,今天就springboot搭建java web工程作以下详解。2.实现方案①新建启动类application@SpringBootApplication@MapperScan(basePackages = "com.cckj.dao")public class Application { public static...原创 2017-05-30 11:06:12 · 5473 阅读 · 0 评论 -
SpringBoot集成ehcache
1.场景还原 近日,由于项目中涉及到相关数据的缓存,之前也写过redis缓存的博客;但是笔者认为ehcache与之比较,配置简单,也容易上手,于是今天介绍一下springboot工程中如何集成EhCache2.实现方案①导入ehcache相关依赖 org.springframework.boot spring-boot-starter-cache 1.4.2.原创 2017-06-20 20:28:13 · 1633 阅读 · 0 评论 -
SpringBoot如何使用velocity模版引擎
1.场景还原 由于公司项目是springboot构建的,访问静态资源必须是首要的考虑;但是springboot访问静态资源跟ssm中有些不一样的地方, 今天笔者就讲解一下在springboot工程中如何加载静态资源。2.实现方案方案①:直接地址栏访问在工程的resources目录下新建static目录,将待访问的静态资源放进去方案②:通过后台controller原创 2017-06-13 21:31:09 · 14463 阅读 · 1 评论 -
SpringBoot如何使用Freemarker模版引擎
1.Freemarker介绍 Freemarker是三大主流模版引擎之一,与Jsp,Velocity并称“三剑客“。2.Freemarker集成方案①在pom.xml中添加依赖依赖 --> org.springframework.boot spring-boot-starter-freemarker②freemarker在application.prope原创 2017-07-15 15:14:07 · 10567 阅读 · 0 评论 -
SpringBoot中集成kaptcha验证码
1.kaptcha相关介绍 Kaptcha是一个基于SimpleCaptcha的验证码开源项目。2.集成方案①pom.xml中配置依赖验证码--> com.github.penggle kaptcha 2.3.2②配置验证码Kaptcha相关设置@Configurationpublic class kaptchaConfig { @原创 2017-07-18 08:52:10 · 5994 阅读 · 0 评论 -
SpringBoot中RESTful API的应用
1.RESTful API简介 restful api是一套目前比较成熟的互联网应用的API设计理论;GET表示查询,POST表示新建,DELETE表示删除,PUT表示修改;这四种请求方式已经鲜明地亮出自己的接口底牌:这个接口到底要实现的什么逻辑。2.RESTful API在SpringBoot中的应用①pom.xml依赖xml version="1.0" encodin原创 2017-08-01 22:50:09 · 451 阅读 · 0 评论 -
SpringBoot工程的热部署
1.热部署 当你修改了过程逻辑,一般都手动执行Application启动类,这样未尝不可,只是十分烦琐罢了;今天笔者带你如何对SpringBoot工程进行热部署,更改代码,idea自动为您编译,省时省力!2.实现方案①热部署pom.xml依赖 org.springframework.boot spring-boot-devtools true 这个需原创 2017-08-02 10:56:15 · 720 阅读 · 0 评论 -
SpringBoot如何集成druid
1.场景还原 springboot相比mvc来说,在配置上极大的节省了开发者的时间与精力,这无疑对开发者是一种不可抗拒的诱惑,今天笔者就springboot如何集成druid跟大伙作个分享;2.实现方案①druid的pom依赖<!--druid依赖--><dependency> <groupId>com.alibaba</groupId>...原创 2018-05-07 19:48:54 · 1894 阅读 · 1 评论 -
SpringBoot之全局异常捕捉
1.场景还原 在项目开发中,为了增加良好的用户体验,很多时候程序员需要自定义异常类,根据不同业务异常类提示给用户不同的异常反馈;今天笔者带着大伙学习下springboot的全局异常捕捉篇2.实现方案①自义定异常类public class PasswordMistakeException extends Exception { public PasswordMistakeExceptio...原创 2018-07-05 23:41:27 · 1900 阅读 · 3 评论 -
SpringBoot中规则引擎Drools的集成
1.场景还原 近期笔者在架构新项目的过程中,对新项目的规则引擎单独拎出来作为一个模块;在面临规则需求可能多次变更的情况,后台全权控制规则引擎,更改规则配置后,不牵扯前端任何更改即可生效。2.Drools规则引擎简介 Drools是一款基于Java的开源规则引擎,实现了将业务决策从应用程序中抽离出来 优点: ①简化系统架构哦,优化应用 ②提高系统的可维护性和维护成本 ③方便系...原创 2018-07-13 10:07:11 · 4829 阅读 · 2 评论 -
SpringBoot中redis分布式锁的实现
1.场景还原 在并发的场景,分布式锁是一种比较常规且实用的解决方案;今天笔者就springboot中如何实现redis分布式锁作个讲解2.关注点 实现redis分布式锁的关键在于设置储存值与过期时间要保证是一个原子性操作,否则会发生死锁;笔者在springmvc中也讲解了redis分布式锁的实现,跟springboot的实现不一样,有兴趣的同学可以去看看博文链接:htt...原创 2018-07-21 13:55:02 · 4692 阅读 · 3 评论 -
SpingBoot的定时器
1.场景还原 定时器在我们项目实际需求中经常会遇到,有的同学可能会头疼,复杂的触发定时条件撸的我们身心俱疲,今天博主就springboot自带的定时器给大家引个道2.实现方案①在启动类中配置@EnableScheduling@SpringBootApplication@MapperScan(basePackages = "com.cckj.dao", markerIn原创 2017-06-19 16:23:16 · 1471 阅读 · 0 评论