spring
文章平均质量分 80
maybe宸
在有限的时光里,多做有意义的事。
展开
-
Spring之ResourceLoader
Spring功能点系列第一篇,恢复学习、恢复学习、恢复学习原创 2022-06-08 19:21:11 · 861 阅读 · 1 评论 -
真正意义的spring boot starter
在当前spring cloud体系下依赖SDK阶段实现的分布式微服务中,通常会把一些架构级的功能提到一个单独的包来开发。然后打包SDK供其他微服务依赖使用。接触到一些项目和网上一些文章写的starter的autoConfiguration都是使用的@configuration注解进行注入的。如果使用@configuration或者@component组件直接注入,就会导致所有服务强依赖问题。比如SDK中有两个功能:redis分布式锁 druid数据源集成这里不讨论分包的问题哈。假设就放在了一原创 2021-04-07 15:39:41 · 290 阅读 · 0 评论 -
ignite分布式内存数据库在springboot中应用
ignite是一个分布式内存数据库,每一个ingite服务即一个节点。在ignite中不区分master、slave,节点间互相平等,支持横向扩展,只要有足够多的节点,支持PB级数据存储。数据支持内存、内存+原生持久化、内存+第三方DB持久化多种不同策略。作为缓存可用于关系型数据库的缓存层。缓存提供...原创 2021-03-26 16:28:39 · 2788 阅读 · 4 评论 -
浅析tomcat调优
基础:每个进入到tomcat的请求,都会创建一个新线程来处理。几个关键参数max threads 最大线程数,指的是tomcat可以接受的最大请求数,默认200acceptcount 队列最大数,指当请求数达到max threads时,队列可以缓存的请求数,默认应该是100max connections 最大连接数,服务器想发送请求,必须先和tomcat建立socket链接,这个就是允许的最大连接数了。最大连接数应该大于最大线程数+队列最大数,默认应该是1000...原创 2020-05-21 21:31:48 · 291 阅读 · 0 评论 -
maven编译后参数名变var1...
想直接看解决方案的可以直接看最后。 最近在做gradle项目迁移到maven,原因是我们使用jenkins做自动化CICD,由于我们的gradle是打包的镜像,所以每次CI时会去启动镜像,这时会先启动gradle的守护进程,这个过程在jenkins下异常缓慢,导致每次CI时间过长,尝试关闭启动开启守护进程,但是仍然会启动一个jvm什么的还是很慢,后来我们分析其实就是这种镜像方式使用导致gr...原创 2020-04-10 09:03:20 · 1610 阅读 · 0 评论 -
spring cloud + nacos 多环境部署
我们开发过程中,要经历本地开发环境、dev开发环境、qa测试环境、(甚至还有uat演示环境)、生产环境。那么我们就需要将服务做多环境处理。我们现在使用都是spring boot架构,它可以根据配置文件的配置去匹配子文件后缀,不过在Spring cloud环境下使用了nacos作为配置中心需要使用bootstrap.yml替换 appliation,yml作为配置文件。因为bootstrap的加...原创 2020-01-18 10:38:25 · 3301 阅读 · 0 评论 -
spring boot 使用 nacos作为注册和配置中心
nacos是阿里开源的注册、配置中心,可以实现服务的注册发现,配置的动态刷新等。nacos提供了集群模式,单机模式,还有一个内置了数据库的包。实现开箱即用。这里单独说一下nacos的namespace概念,nacos在所有注册和配置之外做了一层命名空间,保证每个命名空间下的配置和注册的服务的独立性。简述一下使用过程吧。首先需要添加nacos的依赖compile 'org.spri...原创 2020-01-18 09:34:36 · 1261 阅读 · 2 评论 -
Spring cloud gateway + JWT时Netty限制header大小导致请求bad Request问题解决
写得比较匆忙,本文主要以整体微服务架构简述开头,按照问题排查过程叙述,加以springboot启动源码浅析和解决办法。如有错误请指正先说版本Spring boot 2.0.4。Spring cloud F版 jdk1.8我们目前的微服务架构,当用户登录后会发放JWT的token令牌给前端,之后的请求都将此token放到http的header中传入后台。但是前端调用时发现之前正...原创 2019-12-24 22:53:16 · 5531 阅读 · 3 评论 -
Spring Cloud Gateway 微服务网关
给公司做的微服务架构中,我们用了gateway作为所有微服务的前端入口,对后端微服务进行路由。gateway使用了webflux的纯异步IO方式开发。实现了更高效的网关服务。gateway的使用使用很简单,这里简单说一下,我们使用的是gradle作为构建工具dependencies { compile 'org.springframework.boot:sprin...原创 2019-12-01 21:41:00 · 409 阅读 · 0 评论 -
spring 事务传播行为
参考资料:Spring事务传播机制&隔离级别Spring事务管理与传播机制详解以及使用实例一般,我们使用的都是spring提供的声明时事务。这里只做声明时事务的记录。写代码时,一个方法需要事务,那么我们会使用spring的注解@transactional来声明时的标注该方法需要事务。spring的事务传播行为是使用@transactional的propagation...原创 2019-07-24 17:52:48 · 214 阅读 · 0 评论 -
在Spring项目下实现策略模式
话不多说。先讲一下我理解的策略模式。策略模式将类的行为抽象出来,使其可以在运行时改变。用于改善代码中过多的if else也可以用于区分业务。spring下使用策略模式,通过spring的IOC自动注入,来匹配我们要实现的策略。我模拟订单创建做了一个demo,结合了策略模式和模板模式,下面上代码:public interface CreateStrategy<T&g...原创 2019-07-02 19:37:25 · 2486 阅读 · 4 评论 -
spring cloud consul 使用以及和eureka的区别
现在在做供应链项目,项目还是一套微服务架构体系。注册中心从之前用的eureka换到了consul。架构的理由估计是eureka不更新了吧。所以来学习一下consul的内容。最近比较忙,我也不再单独查资料了,就把自己知道的写出来好了。如有错误请指正哈。什么是consulconsul是一个spring cloud 中集成好的开源的分布式的服务注册发现中心。由Go语言编写。支持健康检查,多数...原创 2019-06-04 12:36:17 · 6235 阅读 · 4 评论 -
spring boot 部署到docker容器
新建一个springboot项目新建一个spring boot项目,打包使用war包。部署到外部tomcat。写一个controller@RestControllerpublic class TestController { @GetMapping("/{name}") public String get1(@PathVariable("name")String name) {...原创 2019-03-05 14:10:28 · 707 阅读 · 1 评论 -
Spring Cloud Zuul 服务网关默认规则及负载均衡示例
我们微服务架构中,各个微服务之间的调用是通过各个eureka客户端把自己注册到eureka服务端中,然后使用feignClient进行调用。这样我们就可以只关心调用的微服务的服务名而无需关心他的实际IP,端口,集群的负载均衡。那么问题来了,如果外部调用呢?前后端分离时,前端调用我们后端暴露接口,如何做到动态调整,负载均衡,并且如果直接访问后端暴露接口是否真正安全?所以今天我们来看一...原创 2019-01-22 17:20:28 · 6644 阅读 · 1 评论 -
spring cloud openfeign 深入学习
spring cloud 架构使用openfeign进行声明式的服务调用,之前我们已经写过了关于openfeign的简单搭建使用。详情请点这里今天我们就不写使用了,我们来看一下openfeign的一些详解。@EnableFeignClients先看一下源码:/* * Copyright 2013-2018 the original author or authors. *...原创 2019-01-22 15:54:37 · 1264 阅读 · 0 评论 -
Spring Cloud 整体架构学习心得
最近要开新项目,使用微服务架构,正好就在之前的spring boot基础之上。所以觉得还是要把最近的思考写一下。让我们小到大一点点说。本文只代表我个人观点理解。1,springspring几乎可以说是现在java开发者都知道的一个开源框架,使用javabean致力于解决企业级应用开发的复杂性。总结有以下优点:1,高内聚低耦合2,简化开发3,IOC一个大工厂管...原创 2019-01-16 15:23:44 · 2269 阅读 · 0 评论 -
Spring Cloud Config + Spring Cloud Bus + RabbitMq实现微服务高可用配置中心
在一个微服务架构中会有很多微服务,每个微服务都有自己的配置文件,这会随着微服务的数量增多而变的难以管理。所以spring cloud 给我们提供了一个很强大的配置管理中心,spring cloud config,他可以将我们的配置文件集中于一处进行集中管理。并且可以通过spring cloud bus + rabbitMQ 进行广播,同步到所有节点,并且直接生效。 注意几点...原创 2019-01-17 11:29:30 · 647 阅读 · 0 评论 -
spring boot 热部署及fastjson配置
最近再看VUE跟cloud,今天回头记录一下当时学习的spring boot的热部署及fastjson相关内容。有关spring boot其他内容请看分类内容。先说简单的热部署。spring boot热部署有两种方式。springloaded及devtools。第一种springloaded没仔细研究,因为启动时好像需要配maven,maven启动,比较麻烦。我这里直接使用第二种方式,devtoo...原创 2018-02-09 11:16:58 · 851 阅读 · 0 评论 -
Spring boot 项目结构及日志配置
上次搭建了一个spring boot的项目,可以通过访问localhost:8080/得到我们从controller返回的json字符串”hello maybe”。详情见,spring boot项目搭建,链接:http://blog.csdn.net/qq_34083066/article/details/79128382今天看一下日志配置,日志在每个项目中都要使用到。先看一下目录结构:maven...原创 2018-01-26 17:07:39 · 1234 阅读 · 0 评论 -
spring boot 项目搭建
以前总是在看,在学习,今天也想记录一下自己的学习过程。主要目的是给自己做个记录,加强记忆如有人看到,希望对您有用,力求做到言简意赅,把自己掉下去的坑都讲出来。如有错误请指正。我对spring boot的理解:spring boot是一个轻量级的新框架,几乎干掉了所有的XML文件用极少配置文件,使用注解方式快速搭建WEB项目。并且集成了tomcat,可以使用main直接启动。使用eclipse搭建基...原创 2018-01-22 15:22:44 · 308 阅读 · 0 评论 -
spring boot 全局异常处理及自定义异常类
全局异常处理:定义一个处理类,使用@ControllerAdvice注解。@ControllerAdvice注解:控制器增强,一个被@Component注册的组件。配合@ExceptionHandler来增强所有的@requestMapping方法。例如:@ExceptionHandler(Exception.class) 用来捕获@requestMapping的方法中所有抛出的exceptio...原创 2018-03-02 16:30:36 · 32234 阅读 · 16 评论 -
spring boot 定时任务
好久没写了。今天搞一下spring boot 的定时任务。定时任务顾名思义,就是定时执行。如何使用定时任务?使用spring boot 定时任务需要:1、开启定时任务:在启动类添加@EnableScheduling注解。2、创建一个被spring 管理的bean组件。在定时任务的方法上添加注解@Scheduled。例如:@Componentpublic class MailTask { @Sc...原创 2018-04-16 15:23:39 · 481 阅读 · 0 评论 -
spring boot dubbo zookeeper的分布式简单示例
之前学习了一阵spring cloud,一直没想着写博客,这两天看了看dubbo+zk,先写一下这个相关的内容吧。才疏学浅,有错误请指正。首先需要安装zookeeper下载地址:https://zookeeper.apache.org/releases.html找到download,进行下载即可。下载后,解压到自己想要解压的某个地方。以我的windows系统为例,我解压到:E:\zookeeper...原创 2018-04-26 16:46:31 · 530 阅读 · 1 评论 -
spring boot 的多文件上传
这个个人觉得就比较简单了。首先前台页面: <div> <form action="/fileUpload.do" enctype="multipart/form-data" method="post" id="fileUploadForm"> <input type="file" name="file&原创 2018-06-11 15:41:10 · 5737 阅读 · 0 评论 -
spring boot使用监听和拦截器实现用户单点登录
这两天突然想做一个功能,让用户在 一个地点登录之后,另一个地方再次登录之后,把之前的用户挤掉,也就是单点登录。项目spring boot,使用监听和拦截器写的。先说一下思路:1,用户1登录,创建session,将用户信息放入session,并以username和session作为键值对,放入一个map。以供后续比对。用户2再次登录,踢掉用户1.这里由于操作都是session,一个是session的...原创 2018-06-13 22:16:13 · 5888 阅读 · 3 评论 -
spring boot + druid来进行数据库加密及sql性能统计
springboot项目就不多说了。druid也不多说了,网上一搜就有介绍。我理解简单说:druid替换了spring boot的c3p0和DBCP连接池。druid提供了可视化界面进行sql性能等相关统计。druid提供了数据库密码加密处理。如何使用:1,引入依赖: <dependency> <groupId>com.alibaba</groupId>...原创 2018-06-08 15:30:27 · 3166 阅读 · 1 评论 -
spring data jpa 实现多条件复杂查询及多表联查
最近发现JPA在处理单表时,很方便,但多表就比较复杂了。今天写一下端午这两天琢磨的多条件查询,还有多表联查。maven依赖啊,配置,继承写法等知识点不展开说了,之前写过一篇文章: spring boot 配置及使用 spring data jpa这里说一下更新的地方:JPA的配置#########################################################sp...原创 2018-06-19 16:32:29 · 36082 阅读 · 14 评论 -
spring boot2 webflux风格开发示例
话不多说 开搞。项目接上回搭建的webflux项目。传送门:IDEA 搭建一个spring boot2 webflux项目项目为jdk10+ spring boot2 +mongodb1,配置mongodb 1,修改配置文件名 springboot项目创建好之后默认的resources里面的文件名为:application.properties ...原创 2018-09-30 20:43:29 · 2340 阅读 · 1 评论 -
IDEA 搭建一个spring boot2 webflux项目
最近考完PMP研究了点新东西,前面写的spring boot1.5.2+JPA的项目会接着写并且升级到springboot2;还有一个spring boot1+mybatis的项目,应该也会陆续的写进来并升级。 这次写的spring boot2 webflux+mongodb。也在逐渐掌握中。最近又发布了JDK11,要学的东西真的挺多的。同时也转战了IDEA,刚开...原创 2018-09-27 15:34:29 · 4463 阅读 · 2 评论 -
spring boot2 redis使用
pom依赖<!-- json解析框架:fastjson依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <v...转载 2018-10-10 20:29:07 · 210 阅读 · 0 评论 -
Spring Cloud Eureka + Openfeign 搭建
要开新项目啦,哈哈哈这回是个分布式微服务项目,所以先来实践一下。架构使用spring boot2.1.1, jdk8,其实想用JDK11的,但是考虑到后面有可能会应用到项目中,所以直接JDK8吧。IDE用STS4.1,注册中心eureka现在的微服务不能保证每个节点永远不出现问题,所以我们需要注册和发现中心,我理解eureka主要作用就是进行微服务的自动注册和发现,以及心跳检测...原创 2019-01-11 14:58:51 · 1948 阅读 · 8 评论 -
spring boot 配置及使用 spring data jpa
我们这里项目使用mysql数据库及spring data jpa进行数据库操作。第一步,先引入所需依赖:<!-- spring boot中spring data JPA的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s...原创 2018-02-22 15:22:13 · 2288 阅读 · 1 评论