`
文章列表
      最近做多职位简历召回时,使用多线程进行es数据召回,发现每次es召回的时间大概在1000ms,甚至导致RuntimeException。linux机器cpu核数等于8  一、分析原因  1、单线程进行es数据召回,耗时30ms左右,猜猜是由于多线程导致的  2、切回线程池多线程执行es数据召回,每条数据耗时1000ms左右,此时线程池配置如下:        private static ExecutorService THREAD_POOL = new ThreadPoolExecutor(40,40, 60, TimeUnit.SECONDS, new LinkedB ...
    如果要开发一个spring自定义的标签比如:  <pre:strategy id="strategyFrist" interface="org.test.spring.schema.strategy.FristStrategy" url="tcp://strategy/frist" />     扩展Spring自定义标签大致需要如下几步:  创建需要扩展的组件 定义XSD文件描述组件内容 创建一个文件,实现BeanDefinitionParser接口,用来解析XSD文件中的定义和组件定义 创 ...
    我们通常需要获取resource目录下的文件如配置文件,用于进行相应的数据获取。在WEB程序里面的jar、resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar、资源文件的时候,首先应该是使用 Thread.currentThread().getContextClassLoader()。 URL l1 = Thread.currentThread().getContextClassLoader().getResource("readFile/test1.xml"); System.out.println(l1); URL l2 ...
最近突然萌发了研究JDK源码的想法,所以就想到了在自己常用的Eclipse上可以调试JDK源码。   整个设置过程也很简单: 首先你要安装好JDK(我的JDK安装路径根目录是D:\Java\jdk-8u92-windows-x64),JDK安装路径里有个“src.zip”就是JDK的源码文件压缩包;
前言:本文为复制文章,便于以后查阅,非常感谢原文作者,原文链接如下:https://www.cnblogs.com/Qian123/p/5710533.html Java提高篇——对象克隆(复制)   阅读目录 为什么要克隆? 如何实现克隆
@ImportResouce 和 @Import 在springboot中的使用   @Import注解可以导入类(bean会被spring容器托管),也可以导入配置类(配置类中的所有bean会被spring容器托管) @ImportResouce注解加载XML配置文件   1、@ImportResouce有两种常用的引入方式:classpath和file,具体查看如下的例子:   classpath路径:locations={"classpath:application-bean1.xml","classpath:application-bean ...
在SpringBoot使用ApplicationEvent&ApplicationListener完成业务解耦   前言:    项目中往往各个业务逻辑之间耦合性较强,因为我们在service都是直接引用的关联service或者jpa来作为协作处理逻辑,然而这种方式在后期更新、维护性难度都是大大提高了。通过使用事件通知、事件监听形式来处理逻辑时耦合性则是可以降到最小。   spring中事件监听实现    ApplicationEvent、ApplicationListener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为 ...
JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能。  本博客内容参考以下博客:  http://blog.csdn.net/gebitan505/article/details/70808730 http://blog.csdn.net/xiaojie119120/article/details/73274759   1、Servlet          Servlet是用来处理客户端请求的动态资源,也就是当我们在浏览器中键入一个地址回车跳转后,请求就会被发送到对应的Servlet上进行处理。    ...
前言:在了解volatile关键字的过程中,在网上发现了一篇讲解特别清楚的,拷贝下来,便于以后查看,原文地址: https://www.cnblogs.com/dolphin0520/p/3920373.html   Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于vola ...
       在使用dubbo异步调用方法,遇到一个坑,类似于这个描述场景:客户端远程异步调用ServiceA,ServiceA在处理客户端请求的过程中需要远程同步调用ServiceB,ServiceA从ServiceB的响应中取数据时,得到的是null。网上找到的解决方法,感谢作者解惑,在这里记录一下,原文请参考:http://blog.csdn.net/windrui/article/details/52150345      dubbo对上下文信息的描述如下(点击查看 ):RpcContext 是一个 ThreadLocal 的临时状态记录器,当接收到 RPC 请求,或发起 RPC ...
   1、前言,session一直都是我们做集群时需要解决的一个难题,过去我们可以从serlvet容器上解决,比如开源servlet容器-tomcat提供的tomcat-redis-session-manager、memcached-session-manager,现在我们可以通过springSession实现session在集群中的共享。     Spring Session提供了一个用于管理用户会话信息的API和实现,同时也支持集群会话而不受限于特定于应用程序容器的解决方案。    2、支持功能       1)、springSession支持将session存储到第三方存储容器, ...
     在项目开发中,我们经常需要进行前后端接口联调的工作,以往通过api接口文档进行接口的描述,一旦接口有什么改动,就需要进行api文档的更改,很不方便,现在我们可以通过swagger进行接口的在线查看和调用,非常方便,如果你对swagger不是很了解,请看这里:5分钟了解swagger 。      下面以springboot为例,进行swagger的配置使用说明,具体如下:       1、引入pom  <dependency> <groupId>io.springfox</groupId> <artifactId>spr ...
在springboot中使用aop 1、加入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>  2、定义aop切面类 /** * ClassName:MetricsAop <br/> * @author shijun@richinfo.cn * @versi ...
在实际业务中,我们经常会遇到树形的机构数据,如行政区划、栏目分类等。 数据库表的设计机构大致如下:      CREATE TABLE `ri_sys_cat` ( `cat_id` varchar(64) NOT NULL COMMENT 'ID', `cat_kind` varchar(4) DEFAULT NULL COMMENT '行业分类类型', `cat_code` varchar(10) DEFAULT NULL COMMENT '行业分类代码', `cat_name` varchar(100) NOT NULL COMMENT '分类名称', ...
本文参考文章: https://www.cnblogs.com/fjdingsd/p/5273008.html https://app.yinxiang.com/shard/s48/nl/12116050/04c101dd-05f4-47cb-8f4d-ce4663e7f842/   如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性(ACID): ⑴ 原子性(Atomicity)   原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库 ...
Global site tag (gtag.js) - Google Analytics