![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
idea
文章平均质量分 58
spring to do
这个作者很懒,什么都没留下…
展开
-
hystrix 服务熔断和服务降级
物理学电路知识涉及到熔断器(CircuitBreaker)的概念,当电路发生故障时,会迅速切断电源来保护电路的安全。在微服务架构中有些微服务由于网络问题或服务故障的原因,熔断器及时作出向服务调用方返回一个符合预期的,可处理的降级响应(FallBack),而不是让用户长时间的等待或者抛出用户无法处理的异常这样保证了服务提供方不会对系统资源长时间的,不必要的占用,避免故障在微服务系统中的蔓延,防止雪崩效应的产生。......转载 2022-08-02 14:45:08 · 2629 阅读 · 0 评论 -
SpringBoot与SpringCloud的关系与区别
是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置,内置HTTP服务器(Tomcat,Jetty),最终。转载 2022-08-02 10:14:13 · 121 阅读 · 0 评论 -
gson TypeAdapter 适配器
Gson 使用指南(一)Gson 使用指南(二)Gson使用指南(三)Gson使用指南(四) TypeAdapter 是自 开始版本提供的一个,用于,包含两个注要方法 和 ,并 的主要是在,以及中示例当我们为 注册了r之后,那些之前介绍的通通都黯然失色,只会调用我们实现的方法再说一个场景,在该系列的第一篇文章就说到了,比如将转成 , 但如果有些情况下给你? 虽然这是服务器端的问题, 不就行了JsonSerializer 与 JsonDeserializer,,则可以使用 和 不原创 2022-06-22 11:52:35 · 1386 阅读 · 0 评论 -
MySQL/Mybatis 多个 AND 和 OR 混用
mysql 中,所以在时,会,,这样才能原创 2022-06-20 11:20:52 · 3950 阅读 · 0 评论 -
OGNL Object-Graph Navigation Language
是 的缩写,全称为,是一种功能强大的,它通过简单一致的语法,可以,能够,实现等功能。1 。2 3 将 设置为,并将值栈作为OGNL的根对象放置到ActionContext中。4 可以在值栈中。访问值栈中的对象 总是把。所以在 OGNL 中5 调用 的 放入的数据,需要使用访问。 符号在OGNL表达式中经常出现符号的用途一般有三种。可以取出%符号的用途是时,计算,这个类似js中的eval,很暴力。$ 符号主要有两个方面的用途。在中,引用,例如国际化资源文件中的代码:OGNL直接()访问方法原创 2022-06-20 10:48:38 · 258 阅读 · 0 评论 -
forEach 中 return 和 for 中 break
想要只有赵六没被打印出来,。原理,,而, 是这种方式不友好,可以再包装一层原创 2022-06-09 23:09:59 · 2913 阅读 · 1 评论 -
批量拼接字符串
从开始,Java编译器就做了优化,,创建使用和使用的方法;并,分别(这里,因为一次拼接耗时太少,看不出差异),打印耗时。,执行,对,查看。这里不要使用Intellij idea和JD进行反编译,因为反编译有优化,会都反编译成“+”拼接的,看不出来编译后的真正情况。可以看出,没有差异,执行效率自然也是一样的虽然“+”拼接字符串编译后也会变成StringBuilder,但是。而,效率相对高...转载 2022-06-09 22:57:23 · 799 阅读 · 0 评论 -
多线程场景下使用 ArrayList
ArrayList 的 add 操作源码可能出现的问题数组越界异常 ArrayIndexOutOfBoundsException由于 ArrayList 添加元素是如上面,可以看出第一个不安全的隐患,在时可能会。具体逻辑如下:元素值覆盖和为空问题设置值的操作同样会导致线程不安全。从这儿可以看出,这步操作也,它由如下两步操作构成:在单线程执行这两条代码时没有任何问题,但是当时,可能就会发生,具体逻辑如下:代码示例执行过程中,两种情况出现如下:代码示例2使用线程池给 ArrayList原创 2022-06-07 18:32:11 · 1659 阅读 · 0 评论 -
查看 class 文件
实战情况k8s + springcloud 项目打包依赖版本问题更新了模块 A 依赖的 模块 B 打的jar包,但是镜像 A打包时,没有 mvn clean install 更新依赖包 B 或者 模块 A 在 mvn clean install 之前,没有对 B 包进行 mvn clean deploy,导致 A 镜像依赖的 B 包 不对查看镜像中的jar包从服务器上下载 镜像kubectl get po -n namespace pod_name -o yaml 得到pod 使用的镜像名原创 2022-04-02 14:25:08 · 3122 阅读 · 0 评论 -
idea 相关 debug 全面技巧
插件idea 常用插件大全IDEA 自动导入 导入多个类 快捷键导入单个类 Alt+Enter (需要移动光标至被导入的类的单词位置)导入多个类 Ctrl+Alt+O如果没有用的话,需要修改一下配置idea打开的一个类,快速定位到类的目录常规法:在左边project上,有个圆圆的小齿轮,点击它就可以了彻底解决法:用鼠标右击左侧导航栏小齿轮附近的空白栏,弹出一个下拉列表,勾选上AutoScroll from source,目录和类文件就可以直接互动了,不用一直总点击小齿轮IDEA格式化原创 2022-04-01 20:06:11 · 737 阅读 · 0 评论 -
Redis 连接错误/连接池配置错误redisConnectionFactory
参考 Redis 连接错误/连接池配置错误问题【说明】:项目采用Redia在redis方面采用RedisTemplate进行方法调用,在配置中采用RedisConnectionFactory和redis连接池Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.2020-11-11 17:53:58.782 ERROR 18680转载 2022-04-01 19:27:38 · 6120 阅读 · 0 评论 -
java 中需要手动关闭的流
在Java中为何要关闭流GC运行的时间点是不确定的(因为是一条单独存在的线程),所以很多时候你不能直接控制什么时候发生GC。这个带来的问题有两点一个是`有时候你的内存不足需要立刻回收而GC并不会立刻运行`另外一个是因为`GC运行期间会占用大量系统资源所以某些情况下你会希望把它推后,或者干脆关掉以便根据性能需求在合式的时候手动执行`。另外,GC只能回收内存。至于各种stream之类,他们接下来一般还开启了各种其他的系统资源,比如文件,比如输入输出设备(键盘/屏幕等),等等。而这些设备第一是不能自原创 2022-04-01 17:58:21 · 3387 阅读 · 0 评论 -
Java常见的各种修饰符
Java常见的各种修饰符转载 2022-03-29 17:27:44 · 481 阅读 · 0 评论 -
idea 2020 修改缓存文件位置
IntelliJ IDEA2020-自定义配置和缓存位置以及数据迁移转载 2022-03-26 23:23:18 · 2116 阅读 · 0 评论 -
idea 连接 ssh 提高效率
idea配置ssh远程连接服务器(效率)转载 2022-03-20 23:16:52 · 218 阅读 · 0 评论 -
.gitlab-ci.yml gitlab package deploy 文件
参考 Gitlab部署CI并使用.gitlab-ci.yml配置您的作业(中文翻译).gitlab-ci.yml 配置文件详解stages: - code_scan - package - deployvariables: MAVEN_CLI_OPTS: "-Djib.to.auth.username=${REGISTRY_USER} -Djib.to.auth.password=${REGISTRY_PASSWORD}" CONTENT: 'Content-Type: appl原创 2022-03-19 16:38:59 · 320 阅读 · 0 评论 -
@Configuration(proxyBeanMethods = false) 和(proxyBeanMethods = true)
区别1、配置类本身也是组件2、proxyBeanMethods:代理bean的方法Full(proxyBeanMethods = true)【保证每个@Bean方法被调用多少次返回的组件都是单实例的,默认】Lite(proxyBeanMethods = false)【每个@Bean方法被调用多少次返回的组件都是新创建的】组件依赖必须使用Full模式@Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件p转载 2022-03-19 16:13:37 · 413 阅读 · 0 评论 -
堡垒机上内网 socket 访问端口
堡垒机即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。也把堡垒机称为跳板机,简易的跳板机功能简单,核心功能是远程登录服务器和日志审计,但堡垒机还有资产管理(CMDB)、监控及用户权限等功能。目前比较优秀的开源软件有Jumpserver、Teleport、GateOne、CrazyEye等;商业的堡垒机功能更为强大,有齐治、Citrix XenApp等原创 2022-03-14 17:53:43 · 2589 阅读 · 0 评论 -
@Transactional 详解 示例
@Transactional 是声明式事务管理 编程中使用的注解参考@Transactional 详解Spring之@Transactional注解原理以及走过的坑Spring事务的原理Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件中做相关的事务规则声明,另一种是基于@Transact原创 2022-03-04 11:51:46 · 20738 阅读 · 3 评论 -
MySQL笔记-\g和\G的用法
\g\g 等价于“;”mysql> select * from t3\g+------+----------+----------+-------+------------+---------------------+| id | username | password | money | birthday | cztime |+------+----------+----------+-------+------------+---------------原创 2022-03-01 19:37:18 · 4500 阅读 · 1 评论 -
No validator could be found for constraint ‘javax.validation.constraints.NotBlank‘ validating type ‘
报错No validator could be found for constraint ‘javax.validation.constraints.NotBlank’ validating type ‘java.lang.Integer’. Check configuration for ‘state’Not 注解@NotNull不能为 null,但可以为 empty,一般用在Integer 类型的基本数据类型的非空校验上,而且被其标注的字段可以使用 @size、@Max、@Min 对字段数原创 2022-03-01 18:49:10 · 10293 阅读 · 0 评论 -
Parameter ‘xxxx‘ not found. Available parameters are [arg1, arg0, param1, param2]
Exceptionorg.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'userid' not found. Availab.转载 2022-03-01 18:21:09 · 154 阅读 · 0 评论 -
特殊类型作为请求参数
@PostMapping(value = "/user/list" , consumes = MediaType.APPLICATION_JSON_VALUE)@ApiOperation(value = "获取用户信息列表", notes = "获取用户信息列表", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE, httpMethod = "POS原创 2022-02-28 14:52:54 · 641 阅读 · 0 评论 -
maven 中 pom 中标签含义
参考Maven实践(十一)—POM文件中各种元素的含义pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。<span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x原创 2022-02-28 14:45:08 · 688 阅读 · 0 评论 -
controller 等接口调用 url
注意以下两个接口在调用时会产生冲突例如 postman 调用下面接口时http://localhost:8080/myweb/companyList会报错,只能使用 get 方法原因是 和下面的 post 方法 url 冲突了@ApiOperation(value = "用户详情", notes = "用户详情", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_VALUE)@GetMapping(value = "/{p原创 2022-02-23 09:42:08 · 1351 阅读 · 0 评论 -
List排序
参考Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合Comparable和Comparator比较器单属性变量List排序按照变量属性升序,降序排序/** * 单属性变量list 自身属性升序, 降序排序 */private void singleVariableSort1(){ List<Integer> list = Arrays.asList(10,1,6,4,8,7,9,3,2,5); System.out.printl转载 2022-02-21 17:09:42 · 214 阅读 · 0 评论 -
feign报错 debug Can not deserialize instance of java.util.ArrayList out of START_OBJECT
分析是feign 调用的远程客户端返回的数据类型与接收类型不一致。单数据类型无法返回复杂的数据类型。这里的关键词是ArrayList和START_OBJECT标记。您不能将单个对象反序列化为对象数组。试着理解这一点,你就会明白为什么。只能将一组 JSON对象反序列化为一个数组或POJO集合。请注意,虽然JSON对象由{ }大括号分隔,但数组由[ ]括号分隔,其中包含一些对象。解决因此,首先你先认真检查两个服务接口返回类型是否一致。我是因为这个原因,对方自己把接口改了,所以我不知道没检查,一直在纠结原创 2022-02-21 16:44:14 · 1033 阅读 · 0 评论 -
git 避免出现太多的commit
git rebase -i参考git 代码没了,git rebase 合并提交记录,git stash修改后git commitgit rebase -i HEAD~2接下来操作看上边参考idea git 面板 rebaseing from here参考idea git log 面板gitlab 直接操作但是这样lhf/dev/3.0 分支上的提交还是有很多的,并不是也合并了,在repository-graph 分支图形上还是可以看到自己分支上的很多提交记录...原创 2022-02-17 17:21:55 · 447 阅读 · 0 评论 -
git push -f 慎用
git push -f 实战使用Git Pushgit 常用命令流程图如下:git push命令用于将本地分支的更新,推送到远程主机。$ git push <远程主机名> <本地分支名>:<远程分支名>git push origin lhf/dev/1.0如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。$ git push origin master上面命令表示,将本地的ma原创 2022-02-17 16:54:17 · 8888 阅读 · 1 评论 -
mapper xml 文件学习
<select id="countByStatus" resultType="int"> SELECT COUNT(distinct a.id) FROM task et inner join task_with_video b on a.id = b.task_id where a.status !=2 <if test="status != null and status != @com.myweb.enum.Task原创 2022-02-15 19:51:29 · 418 阅读 · 0 评论 -
牛客力扣刷题
反转链表(直接逆置法,头插法)https://www.bilibili.com/video/BV1KZ4y157Up?from=search&seid=14423548229541922351&spm_id_from=333.337.0.0https://www.bilibili.com/video/BV1Y64y1c7YJ/?spm_id_from=333.788.recommend_more_video.-1原创 2022-02-14 23:25:53 · 394 阅读 · 0 评论 -
修改Maven settings.xml 配置未生效
问题描述:自己修改了下${M2_HOME}/conf/settings.xml中的本地repository地址,但是重新执行mvn的时候发现repository地址并没有改变。那么问题所在?1 settings.xml文件位置settings.xml文件一般存在于两个位置:全局配置: ${M2_HOME}/conf/settings.xml用户配置: user.home/.m2/settings.xml(note:用户配置优先于全局配置。)2 配置优先级需要注意的是:局部配置优先于全局配置转载 2022-01-30 21:52:01 · 5996 阅读 · 0 评论 -
RequestParam和PathVariable的区别
相同点这两个都是用来处理前端传递过来的请求参数不同点不同的是RequestParam处理的是请求参数,而PathVariable处理的是路径变量这样说更容易理解,RequestParam是将对应请求路径下的请求参数值映射到处理器参数上而PathVariable是将请求路径变量的值映射到处理器参数上直接上例子http://localhost/mdeditor/chen?id=39//将请求参数映射到处理器参数上@RequestMapping("/mededitor/chen")publi原创 2022-01-20 17:14:27 · 3773 阅读 · 3 评论 -
idea 删除重复的依赖
java.lang.ClassNotFoundException,Method not found: '......',或者莫名其妙的异常信息,这种情况一般很大可能就是jar包依赖冲突的问题引起的了。为什么会发生 jar包依赖冲突版本不匹配,高版本依赖了低版本,或者低版本依赖了高版本。例如引入第三方库,但是第三方库基于的是 JDK7,而你们项目使用的是JDK8。重复引入不同版本jar包,造成使用错误。很多时候我们引入第三方轮子,它们依赖引入某个基础工具使用的是 v 1.0 的 jar,但是原创 2022-01-19 16:08:36 · 3611 阅读 · 0 评论 -
swagger 控制接口显示
@RestController@ApiIgnore 添加此注解,则swagger中不会展示此controller@RequestMapping("xxxxx")@Validatedpublic class Test{}@RestController@Api(description = "xxx接口") swagger会展示接口@RequestMapping("xxxx")@Validatedpublic class Test{...原创 2022-01-19 11:27:48 · 1375 阅读 · 0 评论 -
idea git log 面板
git log 面板解释cherry pick参考这里reset current branch to here情形1:提交了多次错误的提交,想回滚到之前的某次提交。情形2:合并了错误的分支,想回滚到合并之前。状态: 修改前,修改后 add 前(蓝色),add 后(蓝色)soft 恢复到 add后,文件为蓝色,git status 显示文件都是绿色。 mixed 恢复到 修改后add前,文件蓝色,git status 显示红色hard 恢复到修改前,git status 什原创 2022-01-18 17:35:01 · 3217 阅读 · 1 评论 -
git prune 相关
远程分支的3种状态远程仓库确实存在分支dev本地版本库(.git)中的远程快照和远程分支建立联系的本地分支git remote prune origin在你经常使用的命令当中有一个git branch –a 用来查看所有的分支,包括本地和远程的。但是时间长了你会发现有些分支在远程其实早就被删除了,但是在本地依然可以看见这些被删除的分支。你可以通过命令,git remote show origin 来查看有关于origin的一些信息,包括分支是否tracking。Local refs con原创 2022-01-17 11:03:59 · 3659 阅读 · 1 评论 -
maven命令
命令列表命令参数 -D 传入属性参数比如命令:mvn package -Dmaven.test.skip=true以“-D”开头,将“maven.test.skip”的值设为“true”,就是告诉maven打包的时候跳过单元测试。同理,“mvn deploy-Dmaven.test.skip=true”代表部署项目并跳过单元测试。 -P 使用指定的Profile配置 比如项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境profiles定义了各个环境的变量id,filt转载 2022-01-17 10:14:48 · 10673 阅读 · 1 评论 -
程序执行一直卡在 : Initializing ExecutorService
问题idea的debug模式启动springboot项目时,在Root WebApplicationContext: initialization completed in 2532 ms之后会卡着一段时间才输出Initializing ExecutorService ‘applicationTaskExecutor’,以前是没有卡的,而且使用普通模式启动也不会在这里卡一段时间。解决之前在调试代码时不注意给属性加了断点,去掉idea的Breakpoints里的java field watchpoin转载 2021-12-14 15:16:48 · 5047 阅读 · 3 评论 -
公司项目私服jar包报错,import中有错误字符
问题idea中maven无法下载私服有公司名字的jar包全部爆红原理当我们在项目中依赖一个jar包时,Maven程序会先去本地仓库中找,如果没找到就回去私服找,如果还是没有,最后就回去中央仓库找。其过程如下图:解决步骤1 刷新,reimport2 idea设置3 idea-settings-maven中本地settings.xml文件配置查看项目 .m2 文件夹中的settings.xml,pom.xml文件,是否进行了私服的配置在本地settings.xml中添加镜像<原创 2021-12-08 16:06:35 · 701 阅读 · 0 评论