java
文章平均质量分 79
努力的小星星
这个作者很懒,什么都没留下…
展开
-
Reactive思考
web flux、web mvc及spring web关系原创 2023-01-07 14:48:59 · 522 阅读 · 0 评论 -
单元测试:脱离Springboot环境加载属性文件样例转至元数据结尾
背景单测的例子仅涉及属性文件的加载,不涉及数据库等,所以不希望启动整个spring boot环境样例 代码如下: // 脱离springboot启动环境如何加载属性文件 @Import(value = {TestProperties.class}) @EnableConfigurationProperties @ContextConfiguration(initializers = ConfigFileApplicationContextInitia原创 2022-03-10 16:46:37 · 800 阅读 · 0 评论 -
java web:Broken Pipe问题排查始末
声明首次,查找到博客等材料,只有 BrokenPipe错误终极解释,比较靠谱,但是实际的操作中,发现表现并不一样,具体的可见该博客的评论,或者自己实现下。接下来就是尝试,不过事先声明,不要在windows os上测试,该问题无法完全复现,均会报“Connection reset by peer: socket write error”。结论好了,不废话,上结论,原因是:socket的client单方面关闭(不论是client所在进程崩溃还是timeout)后,且已经向server发送了RST原创 2022-02-16 19:17:24 · 2119 阅读 · 0 评论 -
大数据组件之Storm简介
简介Storm是一个开源的分布式实时计算框架。特点支持水平横向扩展 高容错性,通过ack机制每个消息都不丢失(好奇该特性如何实现) 处理速度快,每个节点每秒处理超过一百万个元组(tuples)其他各编程语言支持友好 支持本地模式 支持图形化界面管理与其他计算框架比较MapReduce(Hadoop家族组件):批处理,适合海量离线处理场景 Spark Streaming:并非真正意义上的流处理,而是微批处理,对数据流进行极小粒度的拆分,近似达到流处理的效果(微分原理) Fl原创 2021-06-30 20:07:05 · 2596 阅读 · 1 评论 -
Feign:如何实现异步调用
背景希望将http的调用由同步等待改为异步,仍使用feign的便捷。使用feign理由本质上其实feign就是将httpclient常用的操作进行简单封装,且屏蔽底层的httpclient,无感知具体的client实现,轻松完成具体client的替换解决方案feign在10.8版本后提供了Async接口(feign-github),如下:demo代码实现 接口编写 publicinterfaceOriginFeignClient { ...原创 2021-05-11 14:58:56 · 14862 阅读 · 3 评论 -
Spring:单测及各种问题集锦
如何脱离Spring boot环境(非@SpringbootTest)加载application.properties/yml import org.junit.Assert;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.springframework.beans.factory.annotation.Autowired;import org.sprin原创 2021-05-10 21:01:57 · 562 阅读 · 0 评论 -
Spring4.x下无法为Feign对象进行Aop增强问题始末
目录动机问题说明排错过程动机动机很简单,就是想对标注了@FeignClient的feignClient进行一些切入点的配置,实现通用日志控制。问题说明像Controller及其子处理器这类Spring自己定义的Bean没问题,对自己的实现的支持还是很完善的,但是到了feign这块,问题就很大了(另外说明一下,当前使用的Spring版本是4.x,且同样的实现,在Spring5.x中完全没问题),通用的aop切片根本无法对标识了@FeignClient的接口api进行处理!!初步原创 2020-11-26 16:12:37 · 948 阅读 · 6 评论 -
Spring boot启动过程及扩展点分析
Springboot(以1.5.21版本为例)项目中,项目启动除了jvm的经典过程外,以下是Spring boot项目启动过程:org.springframework.boot.loader.JarLauncher中的main函数即为上一步jvm加载并执行的函数 编写有SpringApplication的应用主函数为其中的启动一个环节接下来跟下Spring boot启动过程【org.springframework.boot.loader.JarLauncher】:registerUrlPr.原创 2020-09-07 10:07:59 · 960 阅读 · 0 评论 -
jvm启动过程
以JDK8为例jvm启动过程:SelectVersion,选择jre版本(主要做jre和当前java程序是否匹配的判断) CreateExecutionEnvironment,创建jvm执行环境(确定jvm信息并做初始化工作,如选择最终的数据模型) LoadJavaVm,动态加载jvm.so共享库,将相关函数导出并初始化 ParseArguments,解析命令行参数 JVMInit,启动流程 接下来的过程在新的线程中执行 初始化jvm 加载java程序中的main函数 调用.原创 2020-09-07 10:04:06 · 274 阅读 · 0 评论 -
Jackson:jackson在Spring boot下的自动配置原理
jackson目前在Spring体系下主要是做messageConverter,也就是Restful请求进入微服务的反序列化,服务内部发出请求的序列化过程转换器。Springboot的autoConfigure包下有两个相关的自动配置类:JacksonAutoConfiguration和HttpMessageConvertersAutoConfiguration(JacksonHttpMessageConvertersConfiguration,GsonHttpMessageConvertersConf原创 2020-08-13 14:02:08 · 678 阅读 · 0 评论 -
Spring boot项目中排除自动配置类失败问题始末
正常情况下,在Spring boot项目中,对于多个自动配置类冲突问题,使用@EnableAutoConfiguration的exclude即可。如下,存在两个配置类构造同一dataSource:1.某包下DruidDataSourceAutoConfigSelf配置类(使用spring.factories进行的自动配置) packagecom.example.framework.autoconfigure.druid; @Configuration @Con..原创 2020-08-03 10:48:01 · 3229 阅读 · 2 评论 -
feign动态切换url方式实现
1、定义调用接口(主要使用@RequestLine) 2、使用(Feignbuilder) 3、调用方式与原feignCLient无异:springcloud中feignClient对原生feign进行了上层封装,得以在Spring环境下对开发人员有较好的细节屏蔽,如果想要跳出该封装,进行灵活的使用,如下场景:需要根据用户的配置,在不重启机器的情况下完成服务的切换 大量的基础参数重复在各个接口间,或其他定制化操作(拦截器等)这种情况下,需要使用原生feign,按以下几步即可:1、定义调用接原创 2020-07-30 17:39:39 · 8833 阅读 · 0 评论 -
Jsp之Servlet中forward和sendRedirect区别【经典面试问题】
这两者的区别是经典面试问题,我们在servlet或JSP编程中也经常用到,接下来看下他们的接口定义所属类。sendRedirect(String url),定义在HttpServletResponse中 该方法用于将客户端请求重定向到其他位置进一步处理,新位置可以在其他服务器或不同上下文,并且该请求是在结束本次请求后,由浏览器重新发起的一次请求,因此也称为客户端重定向。这样说可能更直白,...翻译 2020-04-16 15:10:23 · 277 阅读 · 0 评论 -
记一次feignClient导致的启动失败经历
spring cloud starter feign 1.4.4.RELEASE一、基本排错过程及原因项目启动报错如下:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'xService' defined in class path res...原创 2020-03-09 11:31:29 · 3064 阅读 · 0 评论 -
spring boot 2.x:feign之feign-starter默认依赖变动及影响
旧版本-Springboot:1.5.x,springcloud:Edgware.SR6新版本-Springboot:2.2.x,springcloud:Hoxton.SR2以下以新版、旧版简称1. 依赖变动轨迹旧版feign-starterspring-cloud-starter-openfeignspring-cloud-netflix-coreio.github.ope...原创 2020-02-28 13:50:11 · 756 阅读 · 0 评论 -
eureka安全注册模式
本文中安全模式仅针对eureka-server,而eureka-service和eureka-client并未增加安全认证eureka-server eureka-service eureka-clienteureka-servereureka-server目前在默认配置下,所有接口均公开暴露,所以在实际应用时我们需要增加密码校验,不论是其本身对外ui界面还是其他接口,这就需要s...原创 2020-02-26 13:10:07 · 254 阅读 · 0 评论 -
Web安全问题梳理
一、XSS(Cross-Site Scripting)跨站脚本攻击,与CSS缩写一样,故叫XSS。它是指通过存在安全漏洞的web网站,在注册/登录用户的浏览器内运行非法的HTML标签或javascript脚本的一种攻击。原理恶意攻击者在web页面里插入可执行的网页脚本代码,当用户浏览该页之时,嵌入其中的脚本代码就会被执行,从而可以达到攻击者盗取用户信息或其他隐私的目的。目的在正...原创 2020-01-02 19:45:30 · 385 阅读 · 0 评论 -
java下map合并
java8下map合并可以有以下几种方式:map为待合并集合,map2为被合并集合(将map2中元素合并到map中)map.merge() map2.forEach((key, value) -> { map.merge(key, value, (origin, newVlue) -> { origin.putAll(newVlue); ...原创 2019-12-17 17:29:16 · 820 阅读 · 0 评论 -
feign在springCloud场景下进行动态url变更
springcloud中feignClient对原生feign进行了上层封装,得以在Spring环境下对开发人员有较好的细节屏蔽,如果想要跳出该封装,进行灵活的使用,如下场景:需要根据用户的配置,在不重启机器的情况下完成服务的切换 大量的基础参数重复在各个接口间,或其他定制化操作(拦截器等)这种情况下,需要使用原生feign,按以下几步即可:定义调用接口(关键点:RequestLine...原创 2019-12-12 10:58:56 · 3754 阅读 · 0 评论 -
java int -128到127问题
最近发现一个有趣的事情,发现使用java的自动装箱方式设置Integer i1=66,i2=66时,i1和i2竟然是一个对象,public static void main(String... args){ Integer i1 = 128; Integer i2 = 128; /* 由于自动装箱是编译器阶段,所以以上...原创 2019-08-27 14:18:49 · 1229 阅读 · 0 评论