springboot
文章平均质量分 67
Niubist_
这个作者很懒,什么都没留下…
展开
-
基于表达式引擎SPEL的数据权限控制
Java 表达式引擎选型调研分析。原创 2023-12-29 09:45:28 · 959 阅读 · 0 评论 -
找不到或无法加载主类
检查项目路径是否包含中文,将项目挪到全英文目录原创 2021-12-02 16:10:31 · 527 阅读 · 0 评论 -
使用RabbitMQ实现未支付订单在30分钟后自动过期
延迟队列可以实现消息在投递到Exchange之后,经过一定的时间之后再投递到相应的Queue。再被消费者监听消费。即:生产者投递的消息经过一段时间之后再被消费者消费。业务场景:订单在30分钟内还未支付则自动取消。该业务的其他实现方案:使用Redis,设置过期时间,监听过期事件。使用RabbitMQ的过期队列与死信队列,设置消息的存活时间,在设置的时间内未被消费,即会投递到死信队...原创 2020-04-17 12:24:33 · 2754 阅读 · 1 评论 -
RabbitMQ死信队列在SpringBoot中的使用
死信队列可以实现消息在未被正常消费的场景下,对这些消息进行其他处理,保证消息不会被丢弃。# 概念:消息会变成死信消息的场景:消息被(basic.reject() or basic.nack()) and requeue = false,即消息被消费者拒绝签收,并且重新入队为false。1.1 有一种场景需要注意下:消费者设置了自动ACK,当重复投递次数达到了设置的最大retry...原创 2020-04-09 17:34:57 · 981 阅读 · 0 评论 -
SpringBoot RabbitMQ实现消息可靠投递
消息投递时 可能发生丢失的场景:生产者------msg------> MQ 。可开启消息投递结果回调,确保每条消息都收到了回调。MQ。将Queue与消息设置成可持久化,搭建镜像集群队列。MQ-------callback---->生产者。回调时失败,某条消息在一段时间内未收到回调,则默认投递失败,生产者需要再次投递该消息到MQ。(该场景下会导致同一条消息被重复投递,消费者端...原创 2020-04-04 14:47:32 · 611 阅读 · 0 评论 -
[原创]SpringBoot的自动配置原理与自定义SpringBootStarter
以SpringBootAdmin的实现方式作为参考实现的效果:添加相关的依赖,再在启动类上加上@EnableXXX就可以使用相关的功能了。原理-SpringBootAdmin为例在启动类上标记注解@EnableAdminServer@EnableAdminServer@SpringBootApplicationpublic class AdminApplica...原创 2019-11-02 12:20:44 · 581 阅读 · 0 评论 -
SpringBoot服务监控-SpringBootAdmin
github地址: https://github.com/codecentric/spring-boot-admin文档地址:https://codecentric.github.io/spring-boot-admin/current/在项目中使用SpringBootAdmin分为两部分: 服务端与客户端。客户端通过http的方式向服务端提供自生的运行状况版本: 2.1.6...原创 2019-11-02 10:12:49 · 571 阅读 · 0 评论 -
SpringBoot 2.x Redis缓存乱码问题/自定义SpringBoot-Cache序列化方式
代码 @Cacheable(cacheNames = "article", cacheManager = "cacheManager", keyGenerator = "keyGenerator", condition = "#id!=null && #id!=''", unless =...原创 2019-10-25 11:51:09 · 1229 阅读 · 0 评论 -
DispatcherServlet
路径 org.springframework.web.servlet.DispatcherServlet继承关系重点关注doService()方法该方法重写了父类FrameworkServlet的方法FrameworkServlet在processRequest()方法中调用了doService()方法而processRequest()方法是在FrameworkServlet(继承...原创 2019-08-28 22:08:47 · 258 阅读 · 0 评论 -
AMQP-RabbitMQ/6/RPC模式/关注消息处理结果
6. RPCBut what if we need to run a function on a remote computer and wait for the result? Well, that’s a different story. This pattern is commonly known as Remote Procedure Call or RPC.大概意思是说,上面几...原创 2019-06-08 08:27:06 · 234 阅读 · 0 评论 -
AMQP-RabbitMQ/5/主题模式
5. 主题模式 Topics根据主题接收消息routing_key - 它必须是由英文点.分隔的单词列表*可以替代一个单词。#可以替换零个或多个单词。图示# 个人理解与路由模式基本相同,不同的点只是路由模式需要Queue订阅的路由键与消息的路由键完全匹配,Exchange才会将消息发送给Queue。而主题模式(Exchange类型为topic),消费者在将Ex...原创 2019-06-08 08:26:34 · 283 阅读 · 0 评论 -
AMQP-RabbitMQ/4/路由模式
4. 路由模式 Routing图示# 个人理解生产者定义Exchange,设置类型为direct。将消息发送给Exchange之前,为每条消息指定路由键消费者定义队列Queue,并将队列与Exchange进行绑定,在绑定的时候需要告诉Exchange,当前这个Queue接受的路由键。消息由Exchange发送给Queue时,消息的routingKey必须与该队列订阅...原创 2019-06-08 08:26:03 · 304 阅读 · 0 评论 -
AMQP-RabbitMQ/3/发布订阅模式
3. 发布订阅模式 Publish/Subscribe - 全集监听fanout一次向多个消费者发送消息图示# 个人理解生产者定义Exchange,同时将Exchange的类型定义为fanout,并向该Exchange发送消息。消费者定义队列Queue,并将队列与该交换机进行绑定。之后交换机付负责将消息全量推送给每一个与之绑定的QueueRabbitMQ中消息传递模型...原创 2019-06-08 08:25:32 · 802 阅读 · 0 评论 -
AMQP-RabbitMQ/2/工作队列
2. 工作队列 Work queuesDistributing tasks among workers消息将发送给c1或者c2# 个人理解生产者定义Queue,并向该队列发送消息多个消费者可以从指定的同一个Queue中读取消息。每条消息只会发送给其中某一个消费者。生产者package com.futao.springmvcdemo.mq.rabbit.workq...原创 2019-06-08 08:24:55 · 251 阅读 · 0 评论 -
AMQP-RabbitMQ/1/概念/一对一简单模型
# JMS,AMQP,MQTT的区别与联系JMSJava消息传递服务(Java Messaging Service )AMQP高级消息队列协议(Advanced Message Queueing Protocol )MQTT消息队列遥测传输(Message Queueing Telemetry Transport )简单理解:*JMS是专门为Java设计的一套消息服务API,像...原创 2019-06-08 08:24:27 · 644 阅读 · 0 评论 -
ActiveMQ基础与SpringBoot整合
ActiveMQ实现了JMS规范。# ActiveMQ中相关概念术语Destination目的地消息将要发送的地方,包括:Queue和Topic,它们都对Destination接口进行了实现PTP模式 - Queue发布订阅模式 - TopicMessageProvider需要指定Destination才能发送消息,MessageConsumer需要指定Destination才能接...原创 2019-06-07 22:19:14 · 390 阅读 · 0 评论 -
基于注解的用户权限拦截Spring HandlerInterceptor
Spring Boot (v2.0.5.RELEASE)程序中有些资源(接口)是需要用户登录才能够使用的,或者是具有某种角色的用户(比如普通登录用户,或者系统管理员等)才能使用,本篇文章先为大家讲解如何控制使用某接口要求用户必须登录。实现的思路是首先定义注解@LoginUser,该注解用于标注哪些接口需要进行拦截定义拦截器,拦截标注了@LoginUser注解的接口拦截之后判断该用...原创 2018-09-24 01:02:48 · 798 阅读 · 0 评论 -
SpringBoot2.0统一返回Rest风格数据结构与统一异常处理
一,统一返回数据结构定义返回的数据结构package com.futao.springmvcdemo.model.system;import org.joda.time.DateTime;import java.sql.Timestamp;/** * @author futao * Created on 2018/9/22-21:47. * 统一返回Rest风格的数据结构...原创 2018-09-24 01:04:16 · 5291 阅读 · 5 评论 -
自定义Hibernate Validator校验注解
在《SpringBoot 2.0参数校验Hibernate Validator》基础上开发定义注解package com.futao.springmvcdemo.annotation;import com.futao.springmvcdemo.annotation.impl.IllegalValueCheckImpl;import com.futao.springmvcdemo...原创 2018-09-25 16:53:51 · 766 阅读 · 0 评论 -
@ConfigurationProperties注解的使用与@Value的使用
读取的配置文件application.yml:jianshu: id: futaosmile# 1. 使用@ConfigurationProperties注解注入@RunWith(SpringRunner.class)@SpringBootTest@ConfigurationProperties(prefix = "jianshu")public class Springmvc...原创 2018-10-11 20:02:10 · 2693 阅读 · 0 评论 -
springboot整合druid连接池
依赖 //mysql 驱动 compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.21' //druid compile group: 'com.alibaba', name: 'druid', version: '1.1.10'# 1. 新建druid配置信息类Druid...原创 2018-10-11 20:26:16 · 700 阅读 · 0 评论 -
IntelliJ IDEA个人配置
# 主题# 字体推荐DejaVu Sans Mono,这个字体绝对爽翻第二推荐Courier 或者 Courier NewIDEA应用字体代码字体预览# 常用插件Alibaba Java Coding Guidelines阿里巴巴编程规范,可以检查自己的java命名规范编程规范以及bug,并会给出相应的解决方案Grep Console对控制台输出...原创 2018-10-19 21:04:06 · 341 阅读 · 0 评论 -
SpringBoot 发送邮件
# 依赖compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail'# 配置spring: # 发邮件 mail: host: smtp.qq.com port: 587 username: 1185172056@qq.com password: 不是qq邮...原创 2018-10-19 22:19:53 · 247 阅读 · 0 评论 -
RocketMQ消息队列还没入门就想放弃
题外话什么情况下的异步操作需要使用消息队列而不是多线程?消息队列和多线程两者并不冲突,多线程可以作为队列的生产者和消费者。使用外部的消息队列时,第一是可以提高应用的稳定性,当程序fail后,已经写入外部消息队列的数据依旧是保存的,如果使用两步commit的队列的话,可以更加提高这个项目。用线程的话,会占用主服务器资源, 消息队列的话, 可以放到其他机器上运行, 让主服务器尽量多的服...原创 2018-10-19 22:20:19 · 2537 阅读 · 0 评论 -
Springboot整合redis从安装到FLUSHALL
语言: java+kotlin# windows下安装redis参考 https://www.cnblogs.com/jaign/articles/7920588.html# 安装redis可视化工具 Redis Desktop Manager参考 https://www.cnblogs.com/zheting/p/7670154.html# 依赖 compile('org....原创 2018-10-17 17:24:14 · 340 阅读 · 0 评论 -
springboot整合elasticsearch全文检索入门
只是简单的整合介绍# 安装下载elasticsearch与kibana https://www.elastic.co/start# 依赖springBootVersion = '2.0.5.RELEASE'compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-elasticsearch'...原创 2018-10-23 21:17:04 · 381 阅读 · 0 评论 -
Springboot 国际化
# 定义国际化资源resources下新建i18n文件夹新建xx.properties文件中文:新建xx_zh_CN.properties文件存放对应的中文英文:新建xx_en_US.properties文件存放对应的英文效果是这样的:定义需要国际化的内容在application.yml中配置spring: messages: # 定义国际化文件的文件地址,...原创 2019-01-23 17:40:46 · 289 阅读 · 0 评论 -
【牛】使用Redis作为Mybatis的二级缓存MybatisCacheRedis
看过市面上其他人写的相关的文章,基本上都是没有深入思考与实际使用的。大都问题是clear()的时候将整个redisDB全部删除了,而没有做到只将单前某个mapper对应的缓存删除。package com.west.lake.blog.foundation;import com.west.lake.blog.model.RedisKeySet;import com.west.lake.bl...原创 2019-04-12 12:42:48 · 229 阅读 · 0 评论 -
【注解驱动开发】- 注册Bean的4种方式
1-1.传统xml方式Xml配置文件的方式定义bean<beans> <bean id="user" class="com.futao.springmvcdemo.model.entity.User"> <property name="address" value="杭州"/> </bean></beans>...原创 2019-04-12 21:22:10 · 307 阅读 · 0 评论 -
SpringBoot 2.0参数校验Hibernate Validator
Spring Boot (v2.0.5.RELEASE)Hibernate Validatorspringboot起步依赖自动添加了对hibernate validator的依赖或者也可以自己手动添加依赖&lt;dependency&gt; &lt;groupId&gt;org.hibernate&lt;/groupId&gt; &lt;artifactId&am原创 2018-09-24 00:58:48 · 1500 阅读 · 0 评论