SpringBoot + SpringCloud + SSM
微服务
bst@微胖子
优秀的架构师曾这样说过:复杂的事情简单做,简单的事情重复做,重复的事情工具做,我们只做工具。这里分享给大家,希望能够帮助众多猴子们。
还有就是在工作中不管事哪级leader指派任务,都要问清楚对方三个问题:1、具体需求是什么?2、开发周期是多久什么时候启动?3、对接配合的相关团队是哪些(UI、后台、前端、测试、产品)
同样在做项目前要自己吃透需求,同时要问清楚自己三个问题:1、为什么要这么干?2、这样干有什么好处?3、还有没有更好的方式方法去做?
项目结束要及时的进行自我复盘、review。同时把做项目前问自己的三个问题在问一边。
相信时间久了,对自己的成长会有,以此鞭策自己!!!
展开
-
微服务中的服务降级与熔断机制
在微服务架构中,服务降级与熔断机制是保证系统稳定性和可靠性的关键技术。当系统中的某个服务发生故障或响应变慢时,服务降级和熔断机制可以帮助系统避免级联失败,保持整体系统的可用性。本文将介绍如何在Java中实现服务降级与熔断机制,主要使用Spring Cloud中的Hystrix作为示例工具。原创 2024-09-04 10:48:19 · 942 阅读 · 0 评论 -
SpringBoot实现增量部署
进行增量打包后,如果前端有不涉及到后端的修改时都可以对resource中的文件进行替换,且不用重启服务。后端如果有更改,只用更新有变化的jar包即可。如果在项目修改过程中引用了新的jar包,需要把新引用的jar包上传至lib文件夹。最近发现公司发布版本时候,很齐全,接口文档,部署方式等都很好,其中有个增量部署包,有点兴趣,不清楚怎么生成增量包和部署增量包的,特此记录一下。其中可执行包打包的就是除了lib文件夹外其他所有文件的打成的通用包。也可以打成zip包,上传到项目中解压后执行启动命令。原创 2024-05-17 11:48:15 · 726 阅读 · 0 评论 -
解决hibernate中session过期问题
1.现象最近公司的老项目使用的hibernate框架,做单点登陆使用到session,但是登陆以后过一段时间就登录状态失效了,经发现是session过期导致。2.解决办法Spring解决hibernate session关闭问题简单操作就是在web.xml文件里面加入如下配置信息: <filter> <filter-name>openSessionInViewFilter</filter-name> <filter-转载 2022-03-10 10:21:33 · 389 阅读 · 0 评论 -
SpringBoot热部署
接下来就是按链接的来,如果你的idea没有update resource and classes的所有选项。不用急,老版本不需要此配置。可以使用双击shift,出现搜索框输入reg,进行选择registry。如果快捷键Ctrl+Shift+Alt+/,没有出现Registry。点了代码修改,发现控制台自动重新编辑了代码,重新启动了。我的也没有配置的地方。原创 2023-06-01 11:23:32 · 223 阅读 · 0 评论 -
springCloud之配置文件中随机数的使用
springboot项目通过配置文件来实现随机数的使用;原创 2023-05-26 17:17:33 · 133 阅读 · 0 评论 -
SpringBoot中一个注解优雅实现重试Retry框架
重试,在项目需求中是非常常见的,例如遇到网络波动等,要求某个接口或者是方法可以最多/最少调用几次;实现重试机制,非得用Retry这个重试框架吗?那肯定不是,相信很多伙伴手写一下控制流程的逻辑也可以达到重试的目的。那么用Retry的好处是什么?简单来说,就是优雅。Retry重试框架,支持AOP切入的方式使用,而且能使用注解;想想,重试次数、重试延迟、重试触发条件、重试的回调方法等等我们都能很轻松结合注解以一种类似配置参数的方式去实现,优雅无疑。原创 2023-04-25 11:36:08 · 519 阅读 · 0 评论 -
springboot项目需要读取非application.yml/properties 的配置文件
主要是用Config类去加载配置文件内容,然后注入到类中进行使用。原创 2023-04-25 09:30:19 · 976 阅读 · 0 评论 -
@NacosValue注解的用法
在SpringCloud工程中,可以使用@RefreshScope+@Value实现配置文件内容变更后的动态刷新。在SpringBoot工程中,可以使用@NacosValue来实现配置文件内容变更后的动态刷新。原创 2023-03-31 10:24:18 · 3350 阅读 · 0 评论 -
使用spring注解时@Service注解,在注入时为null的问题
【代码】使用spring注解时@Service注解,在注入时为null的问题。原创 2022-11-06 19:09:05 · 1892 阅读 · 0 评论 -
Spring 使用 @RequestHeader 获取请求头常用方式
以前获取请求头里面的参数通过request.getHeader(“xxx”)来获取,如今可以通过注解的方式获取了。2.1、获取单个请求头例如,获取 user-id 请求头测试2.2、 一次性获取所有请求头方式一:使用 Map 接收所有请求头测试日志打印方式二:使用 MultiValueMap 接收所有请求头测试日志打印可以发现如果一个请求头存在多个值的时,可以使用 MultiValueMap 接收所有请求头。查看 MultiValueMap 源码,发现 MultiValueMap 实现了 M原创 2022-06-06 15:53:46 · 4763 阅读 · 0 评论 -
Spring Boot 实现读写分离
1、上流程图2、配置多数据源首先,我们在 SpringBoot 中配置两个数据源,其中第二个数据源是ro-datasource:这里可以配置两个不同的数据库作为主从数据库,这里为了方便给数据库设置两个用户来实现读写分离spring: datasource: jdbc-url: jdbc:mysql://localhost/test username: rw password: rw_password driver-class-name: com.mysql.jd原创 2022-04-29 16:12:39 · 7538 阅读 · 2 评论 -
SpringCloud Sleuth分布式服务追踪
1、准备工作2、实现跟踪2、与logstash的整合3、zipkin实现数据跟踪这个自行百度,本人使用日志查看数据原创 2022-04-24 11:47:49 · 231 阅读 · 0 评论 -
SpringCloud bus消息总线集成RbbitMQ
1、安装rabbitmq和erlang服务服务的安装这里省略,自行百度。2、集成RabbitMQ原创 2022-04-24 11:31:42 · 1573 阅读 · 0 评论 -
SpringCloud之config配置中心
1、引入依赖2、配置规则3、其他服务读取配置原创 2022-04-15 18:48:54 · 104 阅读 · 0 评论 -
SpringCloud值api网关服务zuul
1、引入zuul网关的依赖2、开启zuul3、新的zuul结合eureka来实现路由转发(推荐)3、zuul的请求过滤原创 2022-04-15 17:51:02 · 88 阅读 · 0 评论 -
SpringCloudHystrix熔断器的使用
1、准备环境2、引入熔断器然后再controller里面引入service来实现调用。原创 2022-04-15 17:24:46 · 237 阅读 · 0 评论 -
SpringCloud的高可用注册中心以及Ribbon实现负载均衡
1、环境准备通过spring.profiles.active属性来分别启动peer1和peer22、解析一般项目中使用都需要对注册中心进行高可用的配置,但某一个注册中心崩溃以后,服务将会请求另一个注册中心,依然可以满足程序的稳定运行。3、Ribbon实现负载均衡然后我们需要实现服务的消费者,在消费者模块引入ribbon依赖:这里服务信息的打印实现的代码如下:...原创 2022-04-15 17:00:19 · 328 阅读 · 0 评论 -
SpringBoot 项目将文件图片资源上传到本地静态资源文件夹下(指定文件夹下)
1、SpringBoot 项目将文件图片资源上传到本地静态资源文件夹下(指定文件夹下)最终效果:前端浏览本地文件,点击上传至本地resources/static/images/imgWall下2、实现流程1.构造前端页面的表单,需要注意的是< form >标签的属性设置enctype=“multipart/form-data”,以及提交方式设置为post<form action="#" th:action="@{/admin/upload}" method="post" enc原创 2022-03-31 19:26:01 · 7570 阅读 · 0 评论 -
阿里巴巴熔断器Sentinel框架的使用
1.使用的项目背景系统的庞大,多个微服务系统之间通过 RPC 框架(如:dubbo、spring cloud、gRPC 等)完成了串联,但随着调用量越来越大,人们发现服务与服务之间的稳定性变得越来越重要。举个例子:Service D 挂了,响应很慢Service G 和 Service F ,都依赖 Service D,也会受到牵连,对外响应也会变慢影响层层向上传递,Service A 和 Service B 也会被拖垮最后,引发雪崩效应,系统的故障影响面会越来越大为了解决这种问题,我们原创 2022-03-10 11:48:21 · 1238 阅读 · 0 评论 -
SpringBoot敏感信息加密
1. 引入包<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version></dependency>2. 配置加/解的密码(加盐salt)# jasypt原创 2022-03-01 18:40:19 · 280 阅读 · 0 评论 -
mapper.xml中foreach标签和trim标签的用法
mapper.xml中foreach的用法mapper.xml中trim的用法转载 2020-09-07 21:41:45 · 1213 阅读 · 0 评论 -
MyBatis 二级缓存 关联刷新实现
1、MyBatis缓存介绍Mybatis提供对缓存的支持,但是在没有配置的默认情况下,它只开启一级缓存,二级缓存需要手动开启。一级缓存只是相对于同一个SqlSession而言。也就是针对于同一事务,多次执行同一Mapper的相同查询方法,第一查询后,MyBatis会将查询结果放入缓存,在中间不涉及相应Mapper的数据更新(Insert,Update和Delete)操作的情况下,后续的查询将会从缓存中获取,而不会查询数据库。二级缓存是针对于应用级别的缓存,也就是针对不同的SqlSession做到缓原创 2022-02-09 15:09:41 · 220 阅读 · 1 评论 -
spring的强大定时器
spring的强大定时器原创 2021-05-17 15:47:01 · 78 阅读 · 0 评论 -
实现定时器的三种方法
参考链接(两种)第三种:/** * 清理会议室历史记录 * @author Ken */@Repositorypublic class ClearRoomRunHistoryTask { private static final Logger logger = Logger.getLogger(ClearRoomRunHistoryTask.class); @Autowired private IRoomRuninfoHistoryService roomRu原创 2021-07-13 11:45:12 · 343 阅读 · 0 评论 -
SpringAop的用途
做日志处理可以使用切面编程(其他的只要是需要在某个点进行处理的都是可以的,比如权限校验等)转载 2020-08-20 09:30:43 · 165 阅读 · 0 评论 -
Spring Boot利用AOP获取用户操作实现日志记录
Spring Boot利用AOP获取用户操作实现日志记录原创 2021-01-20 13:42:45 · 738 阅读 · 0 评论 -
springAop环绕通知用法
springAop环绕通知用法转载 2021-01-26 15:57:15 · 347 阅读 · 0 评论 -
logback.xml日志文件的基本配置
<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --><!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果原创 2021-07-23 09:29:01 · 1153 阅读 · 0 评论 -
SpringCloud使用zipkin实现链路追踪入门
ZipKin介绍Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据。ZipKin架构ZipKin可以分为两部分,一部分是zipkin server,用来作为数据的采集存储、数据分析与展示;zipkin client是zipkin基于不同的语言及框架封装的一些列客户端工具,这些工具完成了追踪数据的生成与上报功能,架构如下:原创 2021-12-21 17:30:38 · 821 阅读 · 0 评论 -
Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效
读取配置的两种方式:本文关注大佬使用的第一种:通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值。如果该值为空,则返回false;如果值不为空,则将该值与havingValue指定的值进行比较,如果一样则返回true;否则返回false。如果返回值为false,则该configuration不生效;为true则生效。...原创 2021-12-14 19:38:40 · 506 阅读 · 0 评论 -
微服务向注册中心配置bootstrap.properties
spring.cloud.config.profile=default用于环境切换到dev分支原创 2020-07-06 18:29:49 · 1411 阅读 · 0 评论 -
springcould中zuul,熔断器,以及jenkins使用
springcould中zuul,熔断器,以及jenkins使用转载 2020-08-07 15:09:05 · 101 阅读 · 0 评论 -
spring boot不同环境读取不同配置
spring boot不同环境读取不同配置转载 2020-11-26 16:56:18 · 210 阅读 · 0 评论 -
springcloudNacos的注册中心和配置中心的使用
springcloudNacos的使用转载 2021-01-06 15:51:58 · 110 阅读 · 0 评论 -
spring的@ControllerAdvice的作用
spring的@ControllerAdvice的作用转载 2021-07-22 14:26:57 · 100 阅读 · 0 评论 -
spring中@ResponseStatus注解的作用
@ResponseStatus主要是改变请求显示的状态。转载 2021-07-22 14:34:56 · 214 阅读 · 0 评论 -
spring之@EnableAsync @Async 的详解以及ThreadPoolConfig配置
spring之@EnableAsync @Async 的详解@Configuration@EnableAsync@Slf4jpublic class ThreadPoolConfig { private static final int AVAILABLE_PROCESSORS = Runtime.getRuntime().availableProcessors(); private static final String SERVICE_THREAD = "serviceThre原创 2021-07-23 09:27:34 · 1206 阅读 · 0 评论 -
SpringBoot 解决跨域,3种解决方案
解决办法:第一种办法:import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class CorsConf原创 2021-12-10 17:24:09 · 685 阅读 · 0 评论 -
spring之@Primary注解使用
@Primary注解使用转载 2021-07-23 09:27:17 · 67 阅读 · 0 评论 -
springboot项目采用undertow容器实现http转成https
配置文件部分参考链接参考链接我们的项目代码是--------》package com.hst.ces.config;import io.undertow.Undertow;import io.undertow.UndertowOptions;import io.undertow.servlet.api.SecurityConstraint;import io.undertow.servlet.api.SecurityInfo;import io.undertow.servlet.api.Tr原创 2021-11-15 15:23:08 · 697 阅读 · 0 评论