
java
文章平均质量分 66
追风09
coder coding
展开
-
接口性能优化对于从事后端必了解
接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。该问题说简单也简单,说复杂也复杂。有时候,只需加个索引就能解决问题。有时候,需要做代码重构。有时候,需要增加缓存。有时候,需要引入一些中间件,比如 Message Queue。有时候,需要需要分库分表。有时候,需要拆分服务。等等。导致接口性能问题的原因千奇百怪,不同的项目不同的接口,原因可能也不一样。本文我总结了一些行之有效的,优化接口性能的办法,给有需要的朋友转载 2021-12-02 14:04:45 · 508 阅读 · 0 评论 -
java实现jsapi支付,微信异步通知结果
/** * 异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url * * @return */ @PostMapping("/get/result") @ApiOperationSupport(order = 5) @ApiOperation(value = " 异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url", notes = " 异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url") public void n.原创 2021-09-14 17:15:29 · 1210 阅读 · 2 评论 -
java final 使用讲解(讲解string)
一、java final基本概念:1、主要用于修饰类、属性和方法:被final修饰的类不可以被继承被final修饰的方法不可以被重写被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的2、final finally finalize区别:(1)final:可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。(2)finally:一般作用在try-ca转载 2021-08-24 12:01:59 · 1785 阅读 · 0 评论 -
tcp三次握手四次挥手详解
对于 TCP 三次握手和四次挥手的一些疑问:第一次握手,如果客户端发送的SYN一直都传不到被服务器,那么客户端是一直重发SYN到永久吗?客户端停止重发SYN的时机是什么?第三次握手,如果服务器永远不会收到ACK,服务器就永远都留在 Syn-Recv 状态了吗?退出此状态的时机是什么?第三次挥手,如果客户端永远收不到 FIN,ACK,客户端永远停留在 Fin-Wait-2状态了吗?退出此状态时机是什么时候呢?第四次挥手,如果服务器永远收不到 ACK,服务器永远停留在 Last-Ack 状...原创 2021-08-24 10:43:39 · 357 阅读 · 0 评论 -
redis事件监听的应用场景与案例实战
什么是事件监听在使用Redis的过程中,我们对Redis做的每一个操作,下发的每一个命令, 都可以认为是事件的存在。所谓事件监听,就是Redis Server会对客户端下发命令进行一个监控, 一但有人对Redis Server做操作, Redis Server都能知道,并通过某种方式将监听到的事件转发到对应的订阅者。应用场景需求一:一个电商商家后台,商家可以设置多个商品的价格并指定价格的生效时间。后台服务需要生效时间到时对所有已经上架的商品进行价格修改。并在价格修改成功后通知所有关注该商品的转载 2021-07-13 11:49:14 · 798 阅读 · 0 评论 -
redis过期事件监听(实际项目中有使用)
/** * @Description: redis监听器配置 */@Configurationpublic class RedisSubscribeConfig { @Bean public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory redisConnectionFactory) { RedisMessageListenerContainer.原创 2021-07-13 11:39:04 · 330 阅读 · 0 评论 -
策略模式和适配器模式区别
直接从字面上看也是两个完全不同的模式;从归类上也是一个是结构模式,一个是行为模式;从定义角度:一个是将一个类的接口转换成客户希望的另外一个接口,从而使原本因接口不兼容不能一起工作的类可以一起工作;一个是把一系列算法封装起来,提供一个统一的接口给客户,并使这些算法可以相互间替换;当然,从Java的实现的角度看,都是定义些接口,定义些类来实现应用这些模式;从使用的角度来看也都是用于解决问题的,当你登峰造极,精通设计模式,这些模式对你来说也就是个工具,没什么区别了;...原创 2020-05-27 09:55:26 · 3091 阅读 · 0 评论 -
sleep和sleep(0)的区别
操作系统原理操作系统中,CPU竞争有很多种策略。Unix系统使用的是时间片算法,而Windows则属于抢占式的。在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在 时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程 序所要做的就是维护一张就绪进程列表,,当进程用完它的时间片后,它被移到队列的末尾。所谓抢占式操作系统,就是说如果一个进程得到了 CPU 时间,除非原创 2020-05-26 10:16:56 · 798 阅读 · 0 评论 -
SpringBoot 配置文件存放位置及读取顺序
SpringBoot配置文件可以使用yml格式和properties格式分别的默认命名为:application.yml、application.properties存放目录SpringBoot配置文件默认可以放到以下目录中,可以自动读取到:项目根目录下 项目根目录中config目录下 项目的resources目录下 项目resources目录中config目录下读取顺序 如果在不同的目录中存在多个配置文件,它的读取顺序是:1、config/ap...原创 2021-05-11 18:11:53 · 1168 阅读 · 0 评论 -
IDEAL代码质量插件
1.SonarLintSonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道下载与安装在需要检测的单个文件或者单个项目上右键 --> Analyze --> Analyze with SonarLint或者选中文件或目录,点击菜单栏 Analyze --> Analyze with SonarLint我们还可以禁用某些规则如果需要同步自定义的规则时,可以绑定到SonarQube查看检测的结果对于代码中的..原创 2021-04-25 09:58:51 · 236 阅读 · 0 评论 -
nginx 下部署前端实例
1.下载nginx2.进入nginx.conf3.配置4.将前端项目放入nginx目录下的html目录5.启动后端项目和nginx服务启动命令 start nginx ;重新启动命令 nginx -s reload6.访问localhost就能看到项目了(默认80端口)注意:如果nginx配置了域名,则需要在电脑上修改hosts文件,hosts文件位置:C:\Windows\System32\drivers\etc在hosts里面配置域名映射。...原创 2021-04-14 15:20:25 · 110 阅读 · 0 评论 -
SpringBoot启动时让方法自动执行的几种实现方式
在springBoot中我们有时候需要让项目在启动时提前加载相应的数据或者执行某个方法,那么实现提前加载的方式有哪些呢?接下来我带领大家逐个解答1.实现ServletContextAware接口并重写其setServletContext方法 @Component publicclassTestStartedimplementsServletContextAware{ /** *在填充普通bean属性之后但在初始化之前调用...转载 2021-04-14 11:05:41 · 199 阅读 · 0 评论 -
java8接口中default 方法使用实战
在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,default修饰方法只能在接口中使用,在接口中被default标记的方法为普通方法,可以直接写方法体。实现类会继承接口中的default方法如果接口A中有default方法:public interface A { public default void a(){ System.out.println("这是A"); }}Test类实现接口A:...原创 2021-04-12 10:38:51 · 923 阅读 · 0 评论 -
阿里云+slb+nginx+esc+其它组件架构方案说明
一种适合创业公司的技术架构方案创业公司,觉得很重要的一点,是快速的以市场行动去验证业务方向的可行性。对于在创业公司的技术团队,一支作为服务支撑的团队,应该遵循的设计原则是:在此前提下,老夫基于阿里云服务实践(是实践不是YY)了一套技术架构方案,如果你不幸步行于此,希望下图没有坑害到你。与其说是架构方案,还不如说是脚手架,因为你所看到的,都是我们最常用的框架和技术,可能不同的是,用了一些阿里云的一些服务。对于上图,老夫解答一些可能会存在疑问的点。问题1:用了阿里云负载均衡(SLB),ng原创 2021-04-09 11:33:52 · 1312 阅读 · 0 评论 -
线程池参数的合理设置
一:线程池参数简介ThreadPoolExecutor类可设置的参数主要有:corePoolSize:核心线程1.核心线程会一直存活,及时没有任务需要执行2.当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理3.设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关queueCapacity:任务队列容量(阻塞队列)当核心线程数达到最大时,新任务会放在队列中排队等待执行maxPoolSize:最大线程数1.当线程数>原创 2021-02-18 10:59:51 · 1935 阅读 · 0 评论 -
java 类加载顺序——Java类中声明了静态对象时静态代码块、构造代码块、构造方法的执行顺序
java 类加载顺序——Java类中声明了静态对象时的静态代码块、构造代码块、构造方法的执行顺序先来看看这一段构造函数的执行顺序。package csdn;public class ParentClass { static int num = 0; String name = "qqqqqq"; static String name2 = "wwwwwwwwwww"; static ParentClass parentClass = new ParentClass(...原创 2020-07-11 20:46:35 · 296 阅读 · 0 评论 -
java 类加载顺序——Java子父类间静态代码块、构造代码块、构造方法的执行顺序
在学习Java基础期间,子父类的静态代码块、构造代码块、构造方法的执行顺序容易混淆,现在通过一段程序来说明它们的执行顺序。一、先看一个简单的静态测试程序:class FatherStaticTest{ static//静态代码块 { System.out.println("执行父类的静态代码块。"); } FatherStaticTest()//父类不带参数的构造方法 { Syst...转载 2020-07-11 20:12:37 · 351 阅读 · 0 评论 -
webservice
<plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.13.1</version> <executions&am原创 2018-02-10 17:02:28 · 310 阅读 · 0 评论