一、参数校验 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦:验证代码繁琐,重复劳动方法内代码显得冗长每次要看哪些参数验证是否完整,需要去翻阅验证逻辑代码hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式。spring-boot-starter-web包里面有hib
转载
2024-03-22 09:45:18
57阅读
1. 基本使用server.port=8080
spring.application.name=ribbon-client
xxx-server.ribbon.listOfServers=localhost:8081,localhost8082@Configuration
public class RibbonConfig {
@Bean
@LoadBalanced
微服务间的调用,网关请求转发,feign都是通过ribbon实现的,因此学习ribbon的原理还是很重要的,而ribbon的作用是用于负载均衡,springcloud自动化整合配置ribbon是RibbonEurekaAutoConfiguration这个类。对于开发者来说,使用ribbon只需要在RestTemplate上添加@LoadBalanced注解即可实现消费方的负载均衡RestTemp
转载
2024-04-03 20:07:52
182阅读
1、导入依赖spring-cloud-starter-hystrix
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependenc
转载
2018-12-29 13:07:00
109阅读
2评论
SpringCloud路由组件之GateWay入门一、GateWay由来 SpringCloud全家桶中有一个很重要的组件就是网关,在1.x版本中都采用的时Zuul网关,但是在2.x版本中,Zuul的升级迟迟未到,后来SpringCloud自己研发了一个网管组件替代了Zuul,实际上GateWay就是原来Zuul1.x版本的替代。二、GateWay介绍 GateWay是在Spring生态系统之上构
,里面还囊括了 Ribbon负载均衡以及Hystrix 熔断降级。Ribbon ...
原创
2022-11-07 19:15:12
225阅读
EurekaServer 在微服务架构中,我们是讲一个单体应用拆分成多个服务单元,各个服务单元之间通过注册中心彼此发现和小菲对方提供的服务,每个服务单元都是单独部署,在各自的服务进程中进行,服务之间通过远程调用实现信息交互,那么当某个服务的响应太慢或者故障,又或者因为网络波动活故障,则会造成调用者延
转载
2020-11-24 14:55:00
96阅读
2评论
一:7种策略比较id策略名称策略对应的类名实现原理1轮询策略(默认)RoundRobinRule轮询策略表示每次都顺序取下一个provider,比如一共有5个provider,第1次取第1个,第2次取第2个,第3次取第3个,以此类推2权重轮询策略WeightedResponseTimeRule1.根据每个provider的响应时间分配一个权重,响应时间越长,权重越小,被选中的可能性越低。2.原理:
转载
2024-05-13 16:12:16
180阅读
SpringBoot整合Lombok插件及常见问题解决LombokLombok能以简单的注解形式来简化java代码,从而提高开发人员的开发效率。其本身是一个优秀的Java代码库,它采用了一种投机取巧的语法糖,简化了Java的编码,为Java代码的精简提供了一种方式,但Lombok并非一个标准的Java库。在web开发过程中经常需要写的Java类,都需要花时间去添加相应的getter/setter、
转载
2024-04-03 13:44:10
120阅读
# Spring Boot 中 Ribbon 全局配置不生效的处理指南
在微服务架构中,Ribbon 是一个负载均衡的客户端工具,经常用在与 Spring Cloud 整合的场景中。然而,有时我们会遇到全局配置不生效的问题。本文将详细介绍如何解决这个问题,并为初学者提供清晰的步骤和代码示例。
## 流程概述
以下是解决 Ribbon 全局配置不生效的基本步骤:
| 步骤 | 操作 | 说明
目录1.注入2.注入原理分析(简易版)3.Set注入详解3.1.Set注入JDK内置类型3.2.Set注入用户自定义类型3.3.Set注入的简化写法4.构造注入4.1.开发步骤4.2.构造注入重载5. 注入总结 1.注入1.什么是注入:通过Spring工厂及配置文件,为所创建对象的成员变量赋值。2.为什么需要注入以前我们为对象的成员变量赋值,直接通过编码的方式,这样是存在耦合的 如果我们以后想为
定时任务之前一直用的是quartz之类,但是注意到Spring中其实也提供了一种简单的调度注释@Scheduled,也就想尝一下鲜..代码示意如下:@Component
@EnableScheduling
public class AsyncTaskHandlerTask {
@Scheduled(fixedDelay = 1000)
public void task1() {
最近在开发时,因为业务场景对数据库操作时,涉及多张表,多张表又要求一致性,就加了spring事务的@Transactional注解,spring事务是基于aop实现,耦合度低,这里主要讲下@Transactional注解的使用注意。spring事务注意事项因为@Transactional注解有很多不生效的场景,所以在自测时,需要验证异常,在代码中手动制造异常(int i= 1/0),观察是否生效;
回顾一下Spring AOP的知识为什么会有面向切面编程(AOP)?我们知道Java是一个面向对象(OOP)的语言,但它有一些弊端,比如当我们需要为多个不具有继承关系的对象引入一个公共行为,例如日志、权限验证、事务等功能时,只能在在每个对象里引用公共行为。这样做不便于维护,而且有大量重复代码。AOP的出现弥补了OOP的这点不足。Spring AOP 中设计的一些核心知识,面试问题?1
什么是跨域?由于安全原因,浏览器都遵循着同源原则,拦截了不同域名之间的请求。跨域请求,是指能让不同域名之间,可以相互发送请求。 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 比如说,域名A ( http://domaina.example ) 的某 Web 应用程序中通过< img&g
01、概述配置类:在springboot中被@Configuration或者@SpringBootConfiguration标注的类称之为配置类。02、作用&目的在配置类可以定义很多@Bean的方法,可以让这些@Bean修饰的方式让spring框架加载到ioc容器中去。03、那为什么会存在配置方便你覆盖底层的配置类让你去扩展的bean的一种机制。04、一个springboot项目中的加载的
开篇服务部署是应用上线前的必需环节。大道至简,如何做到项目简单化、自动化甚至傻瓜式部署是考验DevOps的一大难题。从docker面世到k8s的脱颖而出,有越来越多的开源工具也在帮助开发和运维人员解决这些问题。对于开发人员,了解和学习Docker可谓是迫在眉睫。网上有很多优秀的学习资源,当然了,本文的主角不全是docker,但也不无关系。现在是CI时代。用过Jenkins,但对于个人或小型项目来说
转载
2024-03-16 07:24:08
124阅读
## 解决springboot pagehelper不生效的问题
### 问题背景
在使用Spring Boot进行开发的过程中,我们常常会用到分页插件PageHelper来实现分页查询的功能。但有时候在集成PageHelper后发现分页功能并没有生效,导致查询结果并没有按照预期分页显示。本文将教你如何解决这个问题。
### 解决步骤
首先让我们来看看整个解决问题的流程,如下表所示:
|
原创
2024-05-21 09:45:06
1126阅读
1 EnableConfigurationProperties 属性配置启动流程图 EnableConfigurationProperties,在SpringBoot的注释中是这样说明的:为带有@ConfigurationProperties注解的Bean提供有效的支持。这个注解可以提供一种方便的方式来将带有@ConfigurationPropert
转载
2024-04-20 14:21:12
87阅读
日常springboot应用中,我们可以使用Actuator来做Springboot项目的监控
他的功能就是帮我们实现springboot项目监控的
比如说有些问题在线上环境出现的 比如说系统响应速度变慢 同时经常无法访问
或者程序的cpu的资源 以及内存 或者io资源,这些都需要有一个良好的认知 这个时候监控就很有必要,这个时候我们就需要Actuator来帮助我们实现微服务的状态监控我先创