
Springboot
TOP__ONE
ERP、TSP、LBS
展开
-
springboot 工程启动报错之Consider defining a bean of type ‘com.bn.lbs.security.oauthhandler.LbsAccessDenied
使用springboot自动注入的方式搭建好了分module的类型工程,结果启动的时候引入其他module模块jar包的service的注入报错了!!!,错误如下图:在网上搜了好多办法,都说是在主启动类上添加@ComponentScan注解,然后指定要注入的包的路径。但是尝试了几次,都不成功。而且在正常情况下@SpringbootApplication注解上添加完@ComponetScan注解后会出现波浪线提示:@SpringbootApplication注解中已经包含@ComponetScan了,原创 2020-07-29 12:42:58 · 1173 阅读 · 0 评论 -
springboot项目中Autowired注解无法注入service,注入显示为null解决方案
最近写了一个工厂+策略模式替换if else的,参见上一篇文章,刚写完时是这样注入的service,但是我测试的时候一直显示service的值为null,即 noticeInfoService的值一直显示为null,调用send方法就报空指针异常/** * app消息推送接口 * created by king on 2020/6/18 6:09 下午 */@Slf4j@Servicepublic class AppSendMsgServiceImpl implements ISendMs原创 2020-06-22 09:50:06 · 6218 阅读 · 3 评论 -
redis分布式锁实现案例之redisson和StringRedisTemplate
redis实现分布式锁,单机情况下加synchronize关键字就ok了~,但是分布式情况下就会出现问题,一个简单的扣减库存问题来做分布式锁的demo~~1、先添加pom依赖,我这里就将redis和redisson的依赖一起引入了 <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> &l原创 2020-06-08 21:59:51 · 3788 阅读 · 0 评论 -
SpringCloud Alibaba之Seata 1.2版本的分布式事务案例演示
参考资料:https://mp.weixin.qq.com/s/2KSidJ72YsovpJ94P1aK1gseata官徽说真的,这个seata搭建与案例演示让我爬了好多坑~~总算测试成功了~现在将自己的步骤与注意事项记录下来:此片文章的前提是上一篇中讲到的seata-server的正确安装,下面进行client端的配置与编码等准备。mysql: 5.7nacos: latest镜像spring-cloud-alibaba: 2.2.0seata: 1.2.0第一步下载seat.原创 2020-06-05 16:26:25 · 1425 阅读 · 2 评论 -
SpringCloud Alibaba之Seata-server的安装配置1.2版本
1、先去官网下载seata-server包zip版本到本地,下载地址https://github.com/seata/seata/releases,如果下载慢的话,可以拷贝链接到迅雷去下载,下载完解压~,或者直接到官网找到下载,然后找到发布说明:https://github.com/seata/seata/releases,进去选择对应的版本来下载2、修改conf下的file.config配置文件先备份原始file.config配置文件为 file.config.bak,一旦后面该错了,可以通过b.原创 2020-06-04 15:45:57 · 1279 阅读 · 0 评论 -
SpringCloud Alibaba之Seata分布式事务简介
随着各种微服务分布式的流行,单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一 致性由本地事务来保证,但是全局的数据 致性问题没法保证。一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题,这也就引出我们的Seate来进行处理分布式事务了~Seate简介官网地址:http://seata.io/zh-cn/Seata 是一款开源的分布式事务解决方案,致力于提供高性能和原创 2020-06-04 10:07:31 · 966 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的持久化配置
前面我们进行Sentinel的限流熔断等配置的时候,每次重启微服务后,配置都会消失,都需要重新配置,这说明我们的配置并没有持久化,一旦我们重启应用,sentinel规则将消失,生产环境需要将配置规则进行持久化,那我们每次重启微服务后,都需要配置一遍Sentinel岂不是很蛋疼~~,所以下面进行演示Sentinel的持久化配置,说是Sentinel的持久化,其实实际上是利用了 nacos的持久化机制,这也就是当初为什么说的 nacos和 Sentinel 基本上不分家,要用都一起用~!~~我们 将限流配置原创 2020-06-03 22:33:20 · 1210 阅读 · 1 评论 -
SpringCloud Alibaba之Sentinel集成Ribbon/OpenFeign案例演示
Sentinel集成Ribbon:1、准备服务提供者cloudalibaba-nacos-provider-payment9001,cloudalibaba-nacos-provider-payment9002,主要是端口不一样,其他一致,下面附上pom、yml和主业务类代码,这里自己建module即可 <!--SpringCloud ailibaba nacos --> <dependency> <groupId&原创 2020-05-29 23:23:53 · 1681 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的@SentinelResource简介之案例演示
前面的文章中我们使用到了@SentinelResource,做了两个测试,一个是@SentinelResource(value = "testHotKey", blockHandler = "deal_testHotKey"),有自己兜底的自定义处理方法一个是@SentinelResource(value = "testHotKey")就会使用默认的兜底方法~上面兜底方案面临的问题:系统默认的,没有体现我们自己的业务要求。 依照现有条件,我们自定义的处理方法又和业务代码耦合在一块,不直观。原创 2020-05-28 18:15:42 · 590 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的热点规则即热点参数限流
官网地址:https://github.com/alibaba/Sentinel/wiki/热点参数限流源码位置:com.alibaba.csp.sentinel.slots.block.BlockException何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制热点参数限流会统计传入原创 2020-05-28 16:15:42 · 1624 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel服务降级策略实战-RT、异常比例、异常数
RT:平均响应时间 (DEGRADE_GRADE_RT):当 1s 内持续进入 N 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位),那么在接下的时间窗口(DegradeRule中的timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地熔断(抛出DegradeException)。注意 Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作 4900 ms,若需要变更此上限可以通过启动配置项-Dcsp.sentinel.s...原创 2020-05-28 10:41:20 · 1925 阅读 · 1 评论 -
SpringCloud Alibaba之Sentinel服务降级规则
官网github地址:https://github.com/alibaba/Sentinel/wiki/%E7%86%94%E6%96%AD%E9%99%8D%E7%BA%A7除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错.原创 2020-05-27 16:52:14 · 824 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的流控规则简介
一、流控规则 :流量限制控制规则Sentinel-dashboard中的流控规则菜单项:资源名:唯一名称,默认请求路径 针对来源: Sentine可以针对调用者进行限流,填写微服务名,默认default (不区分来源) 阈值类型/单机阈值: QPS (每秒钟的请求数量) :当调用该api的QPS达到阈值的时候,进行限流 线程数:当调用该api的线程数达到阈值的时候,进行限流 是否集群:不需要集群 流控模式: 直接: api达到限流条件时,直接限流 关联:当关联的资...原创 2020-05-27 12:54:15 · 766 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel案例初始化演示
首先需要准备的为:nacos8848控制中心这里单点演示、sentinel-dashboard控制台8080、新建sentinel-service8401微服务因为nacos8848是docker直接启动、sentinel-dashboard是jar包直接启动,下面只剩下新建一个sentinel-service8401了1、新建modul为 cloudalibaba-sentinel-service8401,并在pom中添加相关依赖包,以后用alibaba这一套nacos和sentinel基本不分家原创 2020-05-26 16:45:33 · 405 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel 简介
以下资料来源于官网:https://github.com/alibaba/Sentinel,下面可以有中文入口如何玩官方文档:https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_sentinel一、Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量原创 2020-05-26 15:25:28 · 653 阅读 · 0 评论 -
SpringCloud Alibaba之Nacos服务配置中心案例(二)-分类配置-共享配置
所有的资料都来源官网,首先先打开Spring的官网https://spring.io,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos Config.下面附上直达目录:https://spring-cloud-alibaba-group.githu原创 2020-05-10 19:50:06 · 751 阅读 · 0 评论 -
SpringCloud Alibaba之Nacos服务配置中心案例(一)-基础配置
所有的资料都来源官网,首先先打开Spring的官网https://spring.io,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos Config.下面附上直达目录:https://spring-cloud-alibaba-group.githu原创 2020-05-10 17:37:59 · 1457 阅读 · 1 评论 -
SpringCloud Alibaba之Nacos服务注册中心案例(二)-服务消费者注册与负载均衡
所有的资料都来源官网,首先先打开Spring的官网https://spring.io/,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos D...原创 2020-05-08 16:22:03 · 569 阅读 · 1 评论 -
SpringCloud Alibaba之Nacos服务注册中心案例(一)-服务提供者注册
所有的资料都来源官网,首先先打开Spring的官网https://spring.io,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos Di...原创 2020-05-08 14:45:41 · 312 阅读 · 1 评论 -
SpringCloud Alibaba之Nacos服务注册和配置中心简介
为什么叫Nacos?前面四个字母分别表示 Naming 和 Configuration 的前两个字母, 最后一个s 为 Service,所以取名为NacosNacos是什么?一个更易于构建云原生运用的动态服务发现、配置管理和服务管理平台 Nacos: Dynamic Naming and Configuration Service Nacos 就是 注册中心+ 配置中心 等价于 N...原创 2020-05-08 10:39:16 · 463 阅读 · 1 评论 -
SpringCloud Alibaba入门简介
为什么会出现SpringCloud Alibaba?本来SpringCloud是主要整合了Netflix下的好多功能组件,但是呢Spring Cloud Netflix项目进入维护模式以下Spring Cloud Netflix模块和相应的starter 将进入维护模式:1. spring-cloud-netflix-archaius2. spring-cloud-netflix-...原创 2020-05-08 10:14:00 · 346 阅读 · 0 评论 -
SpringCloud Sleuth分布式请求链路追踪Zipkin
官网链接spring-cloud-sleuth官网在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。当链路多的时候,分析定位问题就会很灾难~Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系...原创 2020-04-29 11:23:31 · 695 阅读 · 0 评论 -
SpringCloud Stream消息驱动之分组消费与持久化
为了演示分组消费和持久化,现在clone一份消息驱动消费者consumer8003,是基于consumer8802来clone的,只需要该端口号等信息即可。等consumer8803构建完毕后,启动如下项目:RabbitMQ、eureka7001、provider8801、consumer8802、comsumer8803当预备环境准备完毕后,请求provier8801的生产信息接口htt...原创 2020-04-28 16:44:14 · 343 阅读 · 0 评论 -
SpringCloud Stream消息驱动之消费者
本文演示是的SpringCloud Stream的消息生产者,和RabbitMQ进行配合,基本上与生产者一样1、构建生产者项目cloud-stream-rabbitmq-consumer8802,添加pom文件依赖<dependencies> <dependency> <groupId>org.springfra...原创 2020-04-28 16:02:13 · 452 阅读 · 1 评论 -
SpringCloud Stream消息驱动之生产者
本文演示是的SpringCloud Stream的消息生产者,和RabbitMQ进行配合1、构建生产者项目cloud-stream-rabbitmq-provider8801,添加pom文件依赖<dependencies> <dependency> <groupId>org.springframework.clo...原创 2020-04-28 14:44:50 · 379 阅读 · 0 评论 -
SpringCloud Stream消息驱动概述
SpringCloud Stream官网链接~什么是SpringCloud Stream:官方定义Spring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者outputs来与Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定),而Spring Cloud Stream的binder对象负责与消息中间件交...原创 2020-04-28 12:01:18 · 753 阅读 · 0 评论 -
SpringCloud Gateway网关的路由、断言、过滤配置
Route(路由)1、构架pom文件,这里面需要将web包去掉,因为Gateway的底层是webflux,而webflux和web是冲突的,只能有一个,需要注意!<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:...原创 2020-04-23 17:31:26 · 3009 阅读 · 0 评论 -
Spring Cloud Bus消息总线的自动刷新全局广播和定点通知配置
什么是总线在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题, 并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。基本原理ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus)。 当一个服务刷新...原创 2020-04-27 18:37:37 · 1018 阅读 · 0 评论 -
RabbitMQ在SpringBoot项目中集成消息总线的时候启动报错java.io.IOException
最近在springboot整合rabbitmq,进行消息总线配置的时候,启动项目报错:org.springframework.amqp.AmqpIOException: java.io.IOException,详细报错如下org.springframework.amqp.AmqpIOException: java.io.IOException at org.springframework...原创 2020-04-27 18:13:09 · 936 阅读 · 0 评论 -
docker之consul的安装与运行单机版图形化界面
1、docker search consul2、docker pull consul3、docker images 查看4、启动命令并运行图形化界面配置参数:–net=host docker参数, 使得docker容器越过了netnamespace的隔离,免去手动指定端口映射的步骤-server consul支持以server或client的模式运行, server是服务...原创 2020-04-14 18:35:30 · 1515 阅读 · 0 评论 -
docker下安装zookeeper并实现springboot+zookeeper注册中心功能
一、docker下安装单zookeeper简易教程1、docker search zookeeper 查询镜像2、docker pull zookeeper 拉取镜像3、查看镜像id,并启动镜像,映射端口号2181 docker run -d -p 2181:2181 --name myzookeeper --restart always 镜像ID4、...原创 2020-04-14 14:41:44 · 914 阅读 · 0 评论 -
Spring Boot + Mybatis 多模块(module)项目的完整搭建教程
一、前言最近公司项目准备开始重构,框架选定为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程。1、开发工具及系统环境 IDE:IntelliJ IDEA 2018.2 系统环境:mac OSX 2、项目目录结构 biz层:业务逻辑层 dao层:数据持久层 web层:请求处理层 二、搭建...转载 2019-09-23 13:18:49 · 386 阅读 · 0 评论