osgi

一文带你学会java的jvm精华知识点

﹥>﹥吖頭↗ 提交于 2020-05-05 11:19:54
前言 本文分为20多个问题,通过问题的方式,来逐渐理解jvm,由浅及深。希望帮助到大家。 1. Java类实例化时,JVM执行顺序? 正确的顺序如下: 1父类静态代码块 2父类静态变量 3子类静态代码块 3子类静态变量 4父类成员变量赋值 5父类构造方式开始执行 6子类成员变量赋值 7子类构造方式开始执行 需要注意的地方是静态变量和静态代码块谁在前面谁先执行。 看一段代码示例: package com.jdk.learn; /** * Created by ricky on 2017/8/25. * * 类加载器加载顺序考究 * * */ public class ClassLoaderTest { public static void main(String[] args) { son sons=new son(); } } class parent{ private static int a=1; private static int b; private int c=initc(); static { b=1; System.out.println("1.父类静态代码块:赋值b成功"); System.out.println("1.父类静态代码块:a的值"+a); } int initc(){ System.out.println("3.父类成员变量赋值:---> c的值"

CloudBeaver docker镜像集成arthas

隐身守侯 提交于 2020-04-30 12:46:32
打算学习下CloudBeaver ,但是无奈CloudBeaver源码基于osgi,同时构建依赖的模块复杂,所以基于arthas 的火焰图功能梳理简单提供一个CloudBeaver 查询的处理流程 dockerfile 基于已经制作好的 FROM dalongrong / cloudbeaver: latest COPY -- from = hengyunabc / arthas: latest / opt / arthas / opt / arthas 环境准备 docker-compose 文件 version: "3" services: cloudbeaver: image: dalongrong / cloudbeaver: arthas build: . / volumes: - "./demos:/opt/demos" ports: - "80:8978" cap_add: - ALL 使用 启动 docker - compose up - d 进入容器生成火焰图 docker - compose exec cloudbeaver sh java - jar / opt / arthas / arthas - boot. jar profiler start - i 200 运行查询 多点几次 停止生成火焰图 profiler stop 效果 打开火焰图 说明

Deploy multiple instance in 1 bundle OSGI

六眼飞鱼酱① 提交于 2020-04-30 06:24:31
问题 I want to deploy some jobs as instances in my jar (bundle) and when I deploy that jar onto Felix, maybe the Web Console can define the jar as 1 bundle but it could present these instances also. Moreover, I could do some bundle function on the instances like update/start/stop/... 来源: https://stackoverflow.com/questions/60808451/deploy-multiple-instance-in-1-bundle-osgi

CloudBeaver dbeaver web 版本

独自空忆成欢 提交于 2020-04-29 08:57:11
CloudBeaver 是dbeaver 提供的web版本,同时也提供了社区版(开源,很不错),以下是一个简单的使用 server 参考架构 java 环境 java 11 && maven 3.6 作为编译 库 Equinox osgi 容器 Eclipse Platform 虚拟文件系统以及插件管理 jetty web server java graphql api 作为前端访问 dbeaver 作为数据库管理平台 其他三方数据库驱动 支持的数据库 pg mysql mariadb sqlite firebird 说明 目前官方暂时还没提供docker 版本,后期制作一个docker镜像,代码也是很值得学习的 参考资料 https://github.com/dbeaver/cloudbeaver https://demo.cloudbeaver.io/ 来源: oschina 链接: https://my.oschina.net/u/4370305/blog/4257730

请设计一个核心功能稳定适合二开扩展的软件系统

泪湿孤枕 提交于 2020-04-28 10:54:02
如何设计出核心功能稳定,业务功能不断扩展的软件系统,我想到了微内核架构。 定义 微内核架构又叫做插件架构,是面向功能进行拆分的可扩展架构。 比如:Eclipse插件,Linux ; 架构图 插件管理 插件注册表机制:名字,位置,加载时机; 插件连接 指的是插件如何连接到核心系统。 插件间通信 插件之间是解耦的,插件之间通信必须通过核心系统,核心系统提供插件的通信机制; OSGI Open Services Gateway initiative 主动开放服务网关; OSGi 具备动态化、热插拔、高可复用性、高效性、扩展方便等优点; 最具代表性的是Eclipse的插件,采用的是OSGI规范设计规范。 OSGI框架 OSGI架构图 规则引擎 属于微内核架构的一种实现,执行引擎对应core system核心系统(微内核),执行引擎执行配置好的业务流程,规则,通过这种方式来支持业务的灵活多变。 工作场景: 工作流程: 对应微内核架构的插件核心: 代表产品 jboss drools, 基于 rete算法实现规则引擎,他的规则语言接近编程语言,一般包装成可视化界面来间接生成。 小结 本篇首先定义了微内核架构,即 面向功能拆分的可扩展架构。 以及他的组成部分,即内核和插件。 以及它需要解决的核心问题,插件管理,插件连接,插件间通信; 最后介绍了两种微内核架构,OSGI 和规则引擎 ; 原创不易

双亲委派模型有感(深入理解jvm)

痴心易碎 提交于 2020-04-12 18:08:54
类加载的双亲委派模型 从顶向底依次的类加载器为:启动类加载器、扩展类加载器、应用程序类加载器、自定义类加载器。 原理: 当执行一个类加载请求时,类加载器自底向顶委派加载任务,委派失败再自己搞定,这一思想真是智慧,实现简单又能解决程序中各种混乱同名类的问题,很好地对基础类进行了统一的管理。当然,没有完美的设计,文中列举的 三次模型被破坏 ,都是人们对更优秀程序需求导致的,而每次的解决方案也都很有意思。 第一次: 为了兼容在引入双亲委派模型之前就存在的用户自定义类,设计出重写findClass()方法,自定义的类加载逻辑在这里面实现,而双亲委派思想在loadClass()中实现,再由它调findClass()。这里就体现了一个公用不变逻辑抽象抽离的思想。 第二次: 该模型有一个核心就是最基础的先加载,以供用户代码使用。然而引入JNDI后,却出现了需要在基础类中调用用户代码的场景。于是有了线程上下文类加载器,虽然文中说是不太优雅的设计,但我觉得还是挺聪明的,对于需要加载SPI具体实现的场景,系统加载器够不着用户代码,就委托给线程上下文类加载器,而这个加载器默认情况返回的就是应用程序类加载器,由此实现父到子的逆向调用。也可以自己设置线程上下文类加载器。 第三次: 由于对程序热部署模块化即插即用的需求,每次用户代码改变,类加载都走一套自底向顶委派的模型显然无法满足

拿万元月薪必备的书单,学JAVA的程序员必看的5本书!

孤者浪人 提交于 2020-04-11 11:44:58
点击蓝色“程序员黄小斜”关注我哟 加个“星标”,每天带你读好书! 文/黄小斜 转载请注明出处 每一年的年初都是买书学习热情高涨的时候,虽然不知道你们是让这些书吃灰还是真的会好好阅读,但是有一些书籍,我还是希望能够推荐给你们。 作为一个自学Java 3年,在大厂工作的资深Java小白,我还是有很多经验和心得想分享给大家的,由于我的水平确实有限,除了分享求职心得和面试经验,能够帮到大家的并不多,而反观一些技术书籍,它们往往是一些大牛或者资深工程师的技术精华,是更加能够帮助到Java学习者的。 授人以鱼不如授人以渔,从阅读开始,你会发现技术学习之路变得越来越简单。**** 1. head first Java 推荐指数:⭐️⭐️⭐️⭐️⭐️ 《head first Java》 推荐理由: 说实话,这本书和其他的我Java类型书籍真的大不相同,它不会一本正经地去说技术概念和原理,而是通过生动有趣的方式去拆解一些复杂的知识点,就好像讲师在讲课的时候,喜欢讲段子而不仅仅扯概念。 不仅这本书,而且本系列的其他书籍也是这么干的,这种用“幼儿园水平”降维分析的方式,对于初学者来说真的是一大福音,五星好评。 作者介绍: 作者叫做Kathy Sierra,她是O'Reilly出版社Head First系列图书策划人之一,也是大型Java开发者社区JavaRanch.com创办人

拿万元月薪必备的书单,学JAVA的程序员必看的5本书!

半腔热情 提交于 2020-04-11 10:19:21
点击蓝色“程序员黄小斜”关注我哟 加个“星标”,每天带你读好书! 文/黄小斜 转载请注明出处 每一年的年初都是买书学习热情高涨的时候,虽然不知道你们是让这些书吃灰还是真的会好好阅读,但是有一些书籍,我还是希望能够推荐给你们。 作为一个自学Java 3年,在大厂工作的资深Java小白,我还是有很多经验和心得想分享给大家的,由于我的水平确实有限,除了分享求职心得和面试经验,能够帮到大家的并不多,而反观一些技术书籍,它们往往是一些大牛或者资深工程师的技术精华,是更加能够帮助到Java学习者的。 授人以鱼不如授人以渔,从阅读开始,你会发现技术学习之路变得越来越简单。**** 1. head first Java 推荐指数:⭐️⭐️⭐️⭐️⭐️ 《head first Java》 推荐理由: 说实话,这本书和其他的我Java类型书籍真的大不相同,它不会一本正经地去说技术概念和原理,而是通过生动有趣的方式去拆解一些复杂的知识点,就好像讲师在讲课的时候,喜欢讲段子而不仅仅扯概念。 不仅这本书,而且本系列的其他书籍也是这么干的,这种用“幼儿园水平”降维分析的方式,对于初学者来说真的是一大福音,五星好评。 作者介绍: 作者叫做Kathy Sierra,她是O'Reilly出版社Head First系列图书策划人之一,也是大型Java开发者社区JavaRanch.com创办人

How to write eclipse rcp applications with scala?

烈酒焚心 提交于 2020-04-07 12:46:40
问题 The Scala Eclipse plugin page says: * Support for Eclipse plugin and OSGi development including hyperlinking to Scala source from plugin.xml and manifest files. How does this support work? There's no wizards for making Scala plugins. I've found no documentation on how to use Scala in a Eclipse plugin/RCP application. Is it even possible? 回答1: Yes, it is possible. In fact, the Scala Eclipse plugin itself is written in Scala. I've never created a Scala RCP app myself, but I'm guessing that what

How to write eclipse rcp applications with scala?

谁说胖子不能爱 提交于 2020-04-07 12:46:05
问题 The Scala Eclipse plugin page says: * Support for Eclipse plugin and OSGi development including hyperlinking to Scala source from plugin.xml and manifest files. How does this support work? There's no wizards for making Scala plugins. I've found no documentation on how to use Scala in a Eclipse plugin/RCP application. Is it even possible? 回答1: Yes, it is possible. In fact, the Scala Eclipse plugin itself is written in Scala. I've never created a Scala RCP app myself, but I'm guessing that what