自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(211)
  • 收藏
  • 关注

转载 分享自研实现的多数据源(支持同DB不同表、跨DB表、内存数据、外部系统数据等)分页查询工具类实现原理及使用

多数据源分页查询工具类(MultiSourcePageQueryBuilder)的使用前提条件是多个查询来源(不仅限于表)必需是有顺序的,即先查第1个来源,查完后再查下一个来源,依此类推,直至查完所有来源,分页结束,如表1,表2,表3,先分页查表1,查完后再查表2,查完后最后查表3。多数据源分页查询工具类(MultiSourcePageQueryBuilder)的使用效果@Test//构建3张虚拟表的记录(假设现在有3张表)折叠示例2折叠。...

2022-08-02 15:02:02 899

转载 小技巧大用处之Bean管理类工厂多种实现方式

testDemoFactory1--beanclassDemoService3,getValueDemoService3.getValueby梦在旅途zuowj.cnblogs.com,doFor3。testDemoFactory1--beanclassDemoService3,getValueDemoService3.getValueby梦在旅途zuowj.cnblogs.com,doFor3。

2022-08-02 14:59:10 847

转载 axios&spring前后端分离传参规范总结

前后端分离开发的场景下,开发人员的工作内容更加专注与专业,但是也产生了一些额外的沟通成本。比如本文中为大家说明的前后端参数传递与接受方法。本文主要是面对前端使用axios,后端使用Spring进行参数接受的情况进行说明。在使用spring的时候,与前端配合开发,容易出现传参歧义的2个注解是很多的文章列举出参数传递失败的问题解决方案,在我看来都不够全面。在此我给大家总结一下。...

2022-08-02 14:56:57 737 1

转载 Python 封装SNMP调用接口

PySNMP是一个纯粹用Python实现的SNMP,用PySNMP的最抽象的API为One-lineApplications,其中有两类API同步的和非同步的,都在模块pysnmp.entity.rfc3413.oneliner.cmdgen中实现,如下是Get方式与Walk方式的基本实现.当我们配置好客户端后,服务端就客户获取数据了,我们以一个OID序号为例,我们查询特定序号对应的名称,然后将其记录下来,例如下面这样。我们使用pysnmp模块来做,安装pysnmp很简单,执行命令。...

2022-07-25 15:13:34 595

转载 Python词频分析

在日常工作或者生活中,有时候会遇到词频分析的场景。如果是要进行词频分析,那么首先需要对句子进行分词,将句子中的单词进行切割并按照词性进行归类。在Python中有个第三方库叫jieba(结巴),可以对文章或者语句进行分词。不得不佩服这个库的作者,真是个取名鬼才)方法接受四个输入参数1、需要分词的字符串;2、cut_all参数用来控制是否采用全模式;3、HMM参数用来控制是否使用HMM模型;...

2022-07-25 15:10:00 3707

转载 Spring 源码-Spring Bean 的创建过程(14)

到目前为止,我们知道Spring创建Bean对象有5中方法,分别是:使用FactoryBean的getObject方法创建 使用BeanPostProcessor的子接口InstantiationAwareBeanPostProcessor的postProcessBeforeInstantiation方法创建 设置BeanDefinition的Supplier属性进行创建 设置BeanDefinition的factory-method进行创建 使用全过程:getBean-->doGetBe

2022-05-15 15:37:52 364

转载 Spring 源码-Spring Bean 的创建过程(13)

Spring Bean的创建过程非常的复杂,上一篇重点介绍了Spring在创建Bean的过程中,使用InstantiationBeanPostProcessor进行提前创建Bean,我们可以通过CGLIB创建对象对Bean的方法进行增强,当然也可以进行其他方式的创建方式。通过提前创建Bean,减少了调用doCreateBean方法的复杂逻辑的执行,而且通过这种方式可以定制创建的方式,便于扩展。使用 supplier 进行Bean的提前暴露接下来继续介绍Spring的创建过程,执行doCreateB

2022-05-15 15:24:55 297

转载 Spring 源码-Spring Bean 的创建过程(12)

上一篇介绍了Spring在创建过程中doGetBean方法,在执行过程中会调用getSingleton方法并且设置一个lambda表达式,这个lambda表达式是ObjectFactory的实现,当调用这个接口的getObject方法时就会执行到createBean方法,在createBean方法中会进行bean类型的解析,并且会进行方法覆盖的设置,当我们配置了如:lookup-method或者replace-method方法的时候就会在创建Bean的过程中设置一个CGLIB的工厂类为Bean的对象,当调用

2022-05-15 14:41:42 302

转载 Spring 源码-Spring Bean 的创建过程(10)

Spring Bean的创建刚开始进行了一些准备工作,比如转换服务的初始化,占位符解析器的初始化,BeanDefinition元数据的冻结等操作,都是为了在创建Bean的过程中保证Bean的正确的创建,接下来开始进行对Bean的创建进行解析。Bean 的创建步骤在Spring源码中对Bean的创建遵循一个步骤就是:getBean --> doGetBean --> createBean --> doCreateBean ,常规的Bean的创建过程都是按照这个步骤执行,然后反射实例化

2022-05-13 19:23:59 349

转载 Spring 源码-Spring Bean的创建过程的前期准备 (9)

回顾总结到目前为止,Spring源码中AbstractApplicationContext#refresh方法的已经解读到第11个方法finishBeanFactoryInitialization,前10个方法介绍了:BeanFactory的准备,创建,刷新,个性化BeanFactory的扩展点,自定义属性解析; 环境信息Environment的加载(包括环境变量、系统变量等); BeanDefinition的加载,解析,自定义xml的方式; BeanFactoryPostProcessor

2022-05-13 19:19:20 436

转载 Spring 源码-Spring BeanPostProcessor的注册(8)

接下来继续解读AbstractApplicationContext#refresh方法对BeanPostProcessor的注册。registerBeanPostProcessors 注册BPP上源码:protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory) { PostProcessorRegistrationDelegate.registerBeanPostProces

2022-05-12 19:21:17 561

转载 Spring 源码-Spring BeanPostProcessor的注册(8)

接下来继续解读AbstractApplicationContext#refresh方法对BeanPostProcessor的注册。registerBeanPostProcessors 注册BPP上源码:protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory) { PostProcessorRegistrationDelegate.registerBeanPostProces

2022-05-12 19:16:14 475

转载 Spring 源码-Spring的注解是如何解析的?(7)

我们知道ConfigurationClassPostProcessor实际上是BeanFactoryPostProcessor的一个实现类,他特殊的地方是他还实现了BeanDefinitionRegisterPostProcessor接口,所以ConfigurationClassPostProcessor 既要实现BeanFactoryPostProcessor的接口方法postProcessBeanFactory也要实现BeanDefinitionRegisterPostProcessor的接口方法po

2022-05-12 14:39:52 489

转载 Spring 源码-BeanFactoryPostProcessor怎么执行的(6)

AbstractApplicationContext提供的postProcessBeanFactory空方法postProcessBeanFactory这个方法没名字跟BeanFactoryPostProcessor接口中的方法一样,但是他的功能是提供给子类进行添加一些额外的功能,比如添加BeanPostProcessor接口的实现,或者定制一些其他的功能也是可以的,因为这个方法你可以拿到BeanFactory,自然是可以对他进行一些功能的定制的。这里看下Spring 提供的子类GenericWe

2022-05-12 14:37:45 356

转载 Linux下Java剪贴板的访问

1 概述本文主要讲述了如何利用xsel在Linux环境下对系统剪贴板的访问。2 起因在搜索引擎直接搜索“Java访问剪贴板”,大部分都是直接使用AWT API进行访问的例子:Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();StringSelection selection = new StringSelection("test");clipboard.setContents(selection

2022-05-12 14:28:17 457

转载 Spring 源码-BeanFactory使用的准备及自定义属性值解析器 (5)

本文将继续介绍Spring源码的重要方法AbstractApplicationContext#refresh方法的第三个方法:prepareBeanFactory,准备BeanFactory。源码如下:protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) { // Tell the internal bean factory to use the context's class loade

2022-05-12 14:25:01 446

原创 1000关JAVA,过了大半关卡,字节门票也就这样轻松的拿到

本人是 2010 年参加编程工作的,一路上在技术公司摸爬滚打,前几年一直在上海,待过的公司有 360 和游久游戏,因为自己家庭的原因,放弃了阿里钉钉团队的 offer 回到了西安。从 2015 年四月开始在一家上市公司担任研发经理的职位,至今也快 6 年了,一路上见了很多也面试了很多人技术人,大部分面试的结果很令我沮丧,这也是我出这本书的原因之一,帮助更多的人搞懂技术最核心的知识。为了写好这个专栏内容,我先后拜访了一二十家互联网公司,与不同的面试官和面试者进行面对面探讨,深入了解了企业对于面试者的要

2022-05-11 21:58:34 319

原创 应聘那些事,大厂JAVA面试题是怎么解的

前言Dubbo用起来就和EJB、WebService差不多,调用一个远程的服务(或者JavaBean)的时候在本地有一个接口,就像调用本地的方法一样去调用,它底层帮你实现好你的方法参数传输和远程服务运行结果传回之后的返回,就是RPC的一种封装当然,这个只是Dubbo的最基本的功能,它的特点是:它主要是使用高效的网络框架和序列化框架,让分布式服务之间的调用效率更高。 采用注册中心管理众多的服务接口地址,当你想调用服务的时候只需要跟注册中心询问即可,不用像使用WebService一样每个服务都得记

2022-05-11 15:32:10 383

转载 Spring 源码-在Spring配置文件中自定义标签如何实现?(4)

基于Spring源码在处理定制的标签时是通过定制的命名空间处理器和xsd文件进行解析的,在spring的classpath下的META-INF/spring.schemas和META-INF/spring.handlers,并且需要将标签的解析器注册到BeanDefinition的解析器中,这样说起来比较抽象,接下来我们自己定义一个标签就明了了。定义标签属性类创建一个需要解析的标签的属性,比如在Spring配置文件中经常看到的<context:component-scan base-packa

2022-05-11 14:59:39 288

转载 Spring 源码-Spring BeanFactory 是怎么创建的?(3)

Spring创建 BeanFactory 的方式按照Bean的配置方式手动创建可以分为两种:使用XMl配置的Bean 这种方式使用xml配置文件配置Bean的信息并且设置扫描的路径,扫描到的包可以使用注解进行配置Bean信息,一般来说手动创建BeanFactory容器的实现类为ClassPathXmlApplicationContext 和SystemFileXmlApplicationContext,设置xml的路径即可创建出IOC容器。 例如: ClassPathXmlApplicatio

2022-05-11 14:47:17 335

转载 Spring 源码-Spring Bean 的创建过程(2)

Spring Bean 的创建过程介绍了FactoryBean 的创建方式,那么接下来介绍不是FactoryBean的创建方式,在创建过程中,又会分为单例的Bean的创建,原型类型的Bean的创建等。一般来说在Spring中几乎所有对象都是单例创建的,除非有其他业务需要设置为其他作用域的Bean,所以重点以创建单例Bean为例。单例Bean的创建在创建时会调用getBean,然后doGetBean,一般来说在Spring中只要是do开头方法基本就是真正干活的方法,所以我们看doGetBean方法的源

2022-05-11 14:39:39 161

转载 Spring 源码-Spring Bean 的创建过程(1)

Spring Bean的创建刚开始进行了一些准备工作,比如转换服务的初始化,占位符解析器的初始化,BeanDefinition元数据的冻结等操作,都是为了在创建Bean的过程中保证Bean的正确的创建,接下来开始进行对Bean的创建进行解析。Bean 的创建步骤在Spring源码中对Bean的创建遵循一个步骤就是:getBean --> doGetBean --> createBean --> doCreateBean ,常规的Bean的创建过程都是按照这个步骤执行,然后反射实例化

2022-05-11 14:32:48 225

转载 SpringBoot工程通过jdbc连接Hive

首先确定当前hive的版本例如:我目前的版本就是hive-common-1.1.0-cdh5.16.2.jar注意:引入的Hive-jdbc依赖需与Hive版本保持一致。依次对应hive-common-1.1.0引入的Hive-jdbc版本为1.1.0(其中排除log4j依赖是为了解决原工程引入Hive依赖后导致日志不输出问题)<dependency> <groupId>org.apache.hive</groupId&g

2022-05-10 20:26:37 2609 1

原创 java openOffice实现局域网内在线预览(docx转pdf)

前言当前的主浏览器都支持直接打开pdf文件,从而实现文件预览。如果是其他格式文件则得下载,因此用openOffice实现文件转pdf格式。一、 openOffice的安装下载地址:http://www.openoffice.org/ 安装教程可参考:openOffice下载和安装 进入安装目录,输入cmd 命令窗口输入以下命令启动: soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststart

2022-05-10 20:11:58 680

原创 面试官:小伙子你来说说Spring 全家桶是什么

Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。有人亲切的称之为:Spring 全家桶。很多研发人员把spring看作心目中最好的java项目,没有之一。所以这是重点也是难点,工作中必须会,面试时肯定考。 那么,花费10分钟,由阿里一线架构师,带你梳理Spring框架相关知识。微服务架构(Microservice Architecture)是一种架构概念,旨在通过将

2022-05-09 20:50:16 986

转载 面试官:mybatis运行原理是什么

一. 什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构

2022-05-09 20:01:28 249

原创 吃透这份pdf,面试阿里、腾讯、百度等一线大厂,顺利拿下心仪offer

前言最近一位年前裸辞的朋友来找我诉苦,说因为疫情原因现在都在家吃老本。本想着年后就来找工作的,但是现在这个情况也不好找,而且很多公司也随着这次疫情面临着资金紧缺导致裁员严重的甚至倒闭,导致很多人失业找不到工作,就更加竞争压力大了朋友说自己实力不过关,很多面试题都答不上,问我有没有之前的面试总结,于是我给了他这份(核心知识点)还有一些面试题总结。现在他拿到了offer,我觉着这个文档对大家应该也有帮助,现在分享给大家!这些资料的内容都是面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基

2022-05-08 19:38:32 210

原创 练完两份面试pdf(含答案)轻松拿下了大厂的offer

整理出一篇Java进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等!JVM线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA 四中引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器 JAVA IO/NIO JVM 类加载

2022-05-08 15:53:10 482

转载 JAVA面试官:你来说说数据库的那些事?

前言volatile是Java程序员必备的基础,也是面试官非常喜欢问的一个话题,本文跟大家一起开启vlatile学习之旅,如果有不正确的地方,也麻烦大家指出哈,一起相互学习~1.volatile的用法 2.vlatile变量的作用 3.现代计算机的内存模型(计算机模型,总线,MESI协议,嗅探技术) 4.Java内存模型(JMM) 5.并发编程的3个特性(原子性、可见性、有序性、happen-before、as-if-serial、指令重排) 6.volatile的底层原理(如何保证可见性

2022-05-08 14:53:48 123

转载 MySQL的文件系统(Linux环境)

目录数据库文件目录/var/lib/mysql/可通过以下sql命令查看:mysql> show variables like 'datadir';+---------------+-----------------+| Variable_name | Value |+---------------+-----------------+| datadir | /var/lib/mysql/ |+---------------+--------

2022-05-08 14:05:24 243

转载 MySQL8新增降序索引

一、MySQL5.7 降序索引MySQL在语法上很早就已经支持降序索引,但实际上创建的却仍然是升序索引,如下MySQL 5.7 所示,row2字段降序,但是从show create table看 row2 仍然是升序的。CREATE TABLE t_desc_index ( row1 INT, row2 INT, INDEX idx_row1_row2 ( row1, row2 DESC ) );SHOW CREATE TABLE t_desc_index 二、MySQL8 降序索

2022-05-08 13:51:30 1974 1

原创 硬核,练完这份《Java面试突击宝典》,90%的程序员进了BAT大厂

前言不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东⻄就显得格外重要。不论是笔试还是⾯试都是有章可循的,我这个“有章可循”说的意思只是说应对技术⾯试是可以提前准备。 我其实特别不喜欢那种临近考试就提前背啊记啊各种题的⾏为,⾮常反对!我觉得这种⽅法特别极端,⽽且在稍有⼀点经验的⾯试官⾯前是根本没有⽤的。建议⼤家还是⼀步⼀个脚印踏踏实实地⾛。正好秋招已经开始了,相信参加秋招提前批的小伙伴们都已经开始面试了,不知道你是否已经拿到了心仪的offer?没拿到的不要紧,秋招相对于春招会有一定的

2022-05-06 20:36:44 796

原创 八股文都不背,大厂怎么进?

程序员面试,就是一场古代科举考试,八股文就是考试中的古诗词填空,背好了就拿分的题。这分拿不到你语文不会真的是体育老师教的吧?疫情反复,裁员盛行,跳槽面试的一大堆,包括我也是这其中的一员,作为刚刚上岸成功地来给大家说说我的面试经验。面试前如果因为八股文没有过,原因就两个,一是没有背全,二是背的资料不行,前者看看你面试的薪资就有动力了,后期就是我要说的重点了。今天就给大家分享下帮我面试成功的一份宝典2022Java进阶学习路线+高频面试题合集,包含JVM,多线程&并发篇,Spring...

2022-05-06 16:15:50 135

转载 Springboot 整合 MyBatisPlus「详细过程」

提要这里已经将Springboot环境创建好 这里只是整合MyBatis过程引入Maven依赖添加MyBatisPlus启动依赖,添加mysql-connector-java依赖<!-- mybatis-plus --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifac

2022-05-06 15:59:47 7889 1

转载 Java-GUI编程之Swing组件

为组件设置边框很多情况下,我们常常喜欢给不同的组件设置边框,从而让界面的层次感更明显,swing中提供了Border对象来代表一个边框,下图是Border的继承体系图:特殊的Border:TitledBorder:它的作用并不是直接为其他组件添加边框,而是为其他边框设置标题,创建该类的对象时,需要传入一个其他的Border对象; ComoundBorder:用来组合其他两个边框,创建该类的对象时,需要传入其他两个Border对象,一个作为内边框,一个座位外边框给组件设置边框步

2022-05-06 15:34:54 299

转载 浅尝Spring注解开发_Spring容器创建概述

概述12个方法java//获取ioc容器 AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);java/** * 创建一个新的AnnotationConfigApplicationContext,派生bean定义 * 从给定的带注释的类,并自动刷新上下文。 * @para

2022-05-06 15:21:46 125

转载 解析Java-throw抛出异常详细过程

首先,我们知道Java有3种抛出异常的形式:throw(执行的时候一定抛出某种异常对象), throws(出现异常的可能性,不一定会发生), 系统自动抛出异常。throw用在一个语句抛出异常的时候,throw (an instance of exception class)比如一个方法/函数里,try{…}catch(Exception e){throw new ArithmeticException(“XXX”);}finally{…};throws则是用在声明方法可能抛出异常的时候,throw

2022-05-06 14:41:44 6301

原创 Java注解如何基于Redission实现分布式锁

这篇文章主要介绍了Java注解如何基于Redission实现分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下1、定义注解类@Target({ ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface DistributedLock { //锁名称 String lockName() default ""; //

2022-05-05 17:16:04 695

原创 SpringBoot Redis缓存数据实现解析

这篇文章主要介绍了SpringBoot Redis缓存数据实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下1.启用对缓存的支持spring对缓存的支持有两种方式:a.注解驱动的缓存b.XML声明的缓存本文主要介绍纯Java配置的缓存,那么必须在配置类上添加@EnableCaching,这样的话就能启动注解驱动的缓存。2.使用Redis缓存缓存的条目不过是一个键值对(Key-Value),其中key描述了产生value的操作

2022-05-05 17:09:26 321

转载 使用MyBatis拦截器后,摸鱼时间又长了

场景在后端服务开发时,现在很流行的框架组合就是SSM(SpringBoot + Spring + MyBatis),在我们进行一些业务系统开发时,会有很多的业务数据表,而表中的信息从新插入开始,整个生命周期过程中可能会进行很多次的操作。比如,我们在某网站购买一件商品,会生成一条订单记录,在支付完金额后订单状态会变为已支付,等最后我们收到订单商品,这个订单状态会变成已完成等。假设我们的订单表t_order结果如下:当订单创建时,需要设置insert_by,insert_time,upd

2022-05-05 15:04:18 140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除