- 博客(19)
- 资源 (3)
- 收藏
- 关注
原创 Jarslink源码解析-----ModuleLoaderImpl
moduleLoader实际上就是模块的“加载器”我们从load方法开始public Module load(ModuleConfig moduleConfig) { if (LOGGER.isInfoEnabled()) { LOGGER.info("Loading module: {}", moduleConfig); } List<String> tempFileJarURLs = moduleConfig.
2021-01-13 22:24:14 1045 3
原创 centos7内网环境下搭建Docker
内网搭建Docker步骤前言安装准备安装步骤centos6.5由于内核版本太低需要先升级内核请搜索网上教程,如果有兄弟需要小弟的yum安装包,已上传至百度云请自行下载前言这些日子单位需要在内网环境下部署Docker环境,由于是内网机自然没办法像外网机一样自由的安装,以下步骤记录了小弟的安装心得以及遇到的一些坑。安装准备由于单位服务器镜像只有centos6.5以及centos7,故小弟只介绍...
2019-08-05 23:36:50 2361 1
原创 MySQL学习(一)数据库引擎
特性 MyISAM InnoDB MEMORY 存储限制 有 支持 有 事务安全 不支持 支持 不支持 锁机制 表锁 行锁 表锁 B树索引 ...
2021-05-25 23:27:22 172 1
原创 Spring-整体概况
Core Container 核心层 Core Container核心容器,包含Core,Beans,Context,Expression Language模块 Core和Beans模块是Spring框架的基础部分,提供IOC(控制反转)和依赖注入特性 Core模块: 主要包含Spring框架基本的核心工具类,是其他组件的基础 Spring的其他组件都要使用到Core模块中的类 Beans模块: ...
2021-05-25 23:22:09 184 1
原创 Jarslink应用示例-----XML方式
XML方式适用于没有大量使用spring来管理bean的模块,我们可以通过手动在模块中建立对应的xml文件来初始化对应模块的上下文获取该bean,实现方式如下:public interface IBaseCom { /** * 打开回调方法 */ public int open(String param); /** * 卸载回调方法 */ public int close( ); /** * 接收消息 */ public i
2021-01-14 23:30:23 224
原创 Jarslink应用示例-----注解方式
我们可以从下面的代码中看到Jarslink扫描Action是从已经加载的ApplicationContext中获取指定的bean中加载,我们可以通过我们的自定义注解的方式加在每个模块需要通信的类上面实现分发请求的功能。/*** 请求类注解*/@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface ActionClass { Strin
2021-01-14 23:13:25 341
原创 Jarslink源码解析-----抽象化的“Action”
最后我们来说一下我个人理解的JArslink的设计精髓-----“Action”首先我们来看一下,SpringModule中的一段代码private <T> Map<String, T> scanActions(ApplicationContext applicationContext, Class<T> type, Function<T, String> keyF
2021-01-14 09:33:38 228
原创 Jarslink源码解析-----ModuleClassLoader
ModuleClassLoader是jarslink自定义的类加载器,继承自URLClassLoader,同时可以强制指定一些包下的class,由本ClassLoader自己加载,不通过父ClassLoader加载,突破双亲委派机制。上面这句话是源码中作者为我们说明的,接下来我将借助源码及之前博客中的知识说明一下这个类主要涉及的点。我们可以从代码中看到,ModuleClassLoader继承自URLClassLoader,该类也是系统类加载器和扩展类加载器的父类(此处是父类,而不是父类加载器,这
2021-01-13 22:52:46 522 1
原创 centos离线安装Gitlab及注册Runner
前言网上一搜,都是抄来的文章,千篇一律。gitlab作为一个代码管理工具本身的功能是非常强大的,尤其是其gitlab-runner功能,其强大的持续集成能力对于由此需求的公司来说是一个不错的选择,本篇文章特别记录一下在公司内网环境下如何搭建gitlab及注册runner的。安装准备两台最小版本安装的centos7,其中一台可联通外网。(注意!必须是最小安装的,至于什么是最小安装请自行百度。...
2021-01-09 21:22:50 2601 9
原创 Jarslink源码解析-----SpringModule
前面几节科普了阅读jarslink需要的一些背景知识,接下来我们来看一下它的源码。包结构其中,modulemanager和moduleservice仅是提供了管理module的接口,这里就不做解析了,重点看一下SpringModule、ModuleLoaderImpl以及ModuleClassLoader这三个类,我们从最基础的SpringModule说起。SpringModule主要有以下几个功能:提供模块基础信息 扫描定义好的Action 提供Action的执行方法 提供模块的
2021-01-08 08:08:53 365
原创 Java线程生命周期
初始状态:线程已被创建,但是还不被允许分配CPU执行。注意,这个被创建其实是属于编程语言层面的,实际在操作系统里,真正的线程还没被创建, 比如 Java 语言中的 new Thread()。可运行状态:线程可以分配CPU执行,这时,操作系统中线程已经被创建成功了休眠状态:如果处在运行状态的线程调用某个阻塞的API或等待某个事件条件可用,那么线程就会转换到休眠状态,注意:此时线程会释放CPU使用权,休眠的线程永远没有机会获得CPU使用权,只有当等待事件出现后,线程会从休眠状态转换到可运..
2021-01-07 07:50:54 187 1
原创 Jarslink之基础学习
在了解jarslink之前,我先介绍一下学习jarslink源码所需要的一些基本知识。一:Java的类加载过程加载:类加载过程的一个阶段:通过一个类的完全限定查找此类字节码文件,并利用字节码文件创建一个Class对象 验证:目的在于确保Class文件的字节流中包含信息符合当前虚拟机要求,不会危害虚拟机自身安全。主要包括四种验证,文件格式验证,元数据验证,字节码验证,符号引用验证。 准备:为类变量(即static修饰的字段变量)分配内存并且设置该类变量的初始值即0(如static int i.
2021-01-07 07:48:09 278
原创 Jarslink简介
JarsLink是一个基于JAVA的模块化开发框架,它提供在运行时动态加载模块(JAR包)、卸载模块和模块间调用的API。需求背景应用拆分的多或少都有问题。多则维护成本高,每次发布一堆应用。少则拆分成本高,无用功能很难下线。 故障不隔离。当一个系统由多人同时参与开发时,修改A功能,可能会影响B功能,引发故障。 多分支开发引发冲突。多分支开发完之后合并会产生冲突。 牵一发动全身。一处核心代码的改动,或一个基础Jar的升级需要回归整个系统。 升级和迁移成本高。中间件升级每个应用都有升级成本。模
2020-12-19 23:16:47 1174 1
原创 Java获取数据库连接的表名、列名、列的类型
不多说,直接上代码Connection conn = DriverManager.getConnection(connDo.getUrl(),connDo.getUsername(),connDo.getPassword()); DatabaseMetaData dbm = conn.getMetaData(); ResultSet rs = ...
2019-12-03 21:41:02 862
原创 XXL-JOB源码学习2 -- Admin包主要类
启动时加载类XxlJobAdminConfig类:实现了InitializingBean接口,会在应用启动后默认注册为实例,用于加载程序中必要参数及dao层的依赖注入XxlJobScheduler类:实现了InitializingBean及DisPosAbleBean接口,会在应用启动后创建程序的三个主要的守护线程及程序关闭时销毁线程系统交互相关类CronExpression...
2019-12-01 16:01:53 426
原创 XXL-JOB源码学习1 --初识项目
项目简介XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。对于刚接触Java的新人来说,xxl系列的源码是非常推荐学习的,因为这个系列的代码结构都比较清晰并且整体风格符合平时开发的习惯,对于新手来说非常友好,源码里有丰富的并发及spring源码知识,还能规范自己的编程习惯,实名推荐!!!项...
2019-12-01 15:51:44 262
原创 使用NSIS对WEB工程打包
前言博主目前在一所小型公司上班,公司的业务比较传统,做的不是互联网项目。近来一段,公司需要发布产品,需要对目前的项目进行打包,博主是一个刚毕业的菜鸟,老大把这项任务给我的时候整个人都是蒙的。之前从来没有听说过打包,只是知道一个exe运行一下即可,深入了解之后,打包可不是一个简单的压缩和解压的过程,这篇文章和大家分享一下我的所得。本篇不介绍nsis的简介及使用,在网上可以搜到一大堆,本篇写的...
2019-06-16 19:12:43 1462
原创 javaee开发过程中遇到的专业名词
Handler:处理器scope:作用域Delegate:代理Template:模板Rendering:渲染Dispatcher:调度Resolvers:解析器
2018-03-13 13:32:42 415
原创 bigdog的JAVAEE---客户端与服务器之间的关系
本人男,软件专业,学了三年的云计算(基本上是什么都没有学到),一直在自学JAVA,自己效率也不高,这不,到大三了才开始试着写自己的博客,记录下自己的程序员之路。本人菜鸟一个,只能写下自己的一些理解和见解,希望大家予以指教,一起进步。Java-web学习之客户端和服务器之间的关系一、浏览器如何向服务器发送请求 浏览器向服务器发送请求主要建立在HTTP协议(hypertext transfer ...
2018-03-12 18:25:36 731
基于SSM的网上通讯录管理系统
2018-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人