com.wuweibi:module4j

module4j is module code style

Лицензия

Лицензия

Группа

Группа

com.wuweibi
Идентификатор

Идентификатор

module4j
Последняя версия

Последняя версия

0.0.1
Дата

Дата

Тип

Тип

jar
Описание

Описание

com.wuweibi:module4j
module4j is module code style
Ссылка на сайт

Ссылка на сайт

https://github.com/wuweiit/module4j
Система контроля версий

Система контроля версий

https://github.com/wuweiit/module4j

Скачать module4j

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.wuweibi/module4j/ -->
<dependency>
    <groupId>com.wuweibi</groupId>
    <artifactId>module4j</artifactId>
    <version>0.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.wuweibi/module4j/
implementation 'com.wuweibi:module4j:0.0.1'
// https://jarcasting.com/artifacts/com.wuweibi/module4j/
implementation ("com.wuweibi:module4j:0.0.1")
'com.wuweibi:module4j:jar:0.0.1'
<dependency org="com.wuweibi" name="module4j" rev="0.0.1">
  <artifact name="module4j" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.wuweibi', module='module4j', version='0.0.1')
)
libraryDependencies += "com.wuweibi" % "module4j" % "0.0.1"
[com.wuweibi/module4j "0.0.1"]

Зависимости

compile (8)

Идентификатор библиотеки Тип Версия
org.slf4j : slf4j-log4j12 jar 1.7.2
org.slf4j : slf4j-api jar 1.6.2
log4j : log4j jar 1.2.14
junit : junit jar 4.11
com.alibaba : fastjson jar 1.1.41
org.codehaus.groovy : groovy jar 1.5.7
org.javassist : javassist jar 3.20.0-GA
commons-io : commons-io jar 2.5

Модули Проекта

Данный проект не имеет модулей.

Maven 坐标

<dependency>
   <groupId>com.wuweibi</groupId>
    <artifactId>module4j</artifactId>
    <version>0.0.1</version>
</dependency>

Java 动态模块化框架

OSGI相信大家比较熟悉,早有耳闻。但是OSGI是一个复杂的工程,学习曲线很高。本人曾经也被坑过最后放弃了OSGI。 目前我所知道的Eclipse 开发工具就是基于OSGI的,更新zip包。那么我为什么要开发这套模块化框架。

是面对动态更新的时候,Java本身不像PHP那样的灵活动态性。

更新日志

2016-11-02 使用字节码技术在主要脚本中可以使用require(String)函数加载其他groovy中的类。

实现思路

Java是编译语言,但在一些技术大牛的努力之下实现了与Java无缝集成的脚本语言,例如:Scala、Groovy。并且这些脚本语言应用非常广。Groovy被应用于Gradle构建工具,还衍生出Grails(groovy on rails) 框架,Scala也是被应用于大数据处理框架Spark等项目。

为什么要使用脚本语言? 因为简单,函数式编程。

在OSGI规范的影响下,Java模块化编程变得”简单“,但是OSGI比较复杂,很多配置让我痛苦(在开发MRCMS插件的时候)。

那么Module4j就这样诞生了,我们要使用OSGI的思路结合Groovy 脚本的动态性,再加上ASM字节码技术,nodejs的模块规范,能实现一个功能强大的插件平台。

目标

module4j只做模块化框架,不会涉及复杂业务。

groovy 模块实现案例

import com.wuweibi.module4j.ModuleUtils
import com.wuweibi.module4j.ModuleActivator;
import com.wuweibi.module4j.module.ModuleContext


/**
 * 栏目模块
 *
 * @author marker
 */
public class ModuleActivatorImpl implements ModuleActivator {



	/**
	 * 启用
	 */
	public void start(ModuleContext context) throws Exception {
        println "module start"
	}



	/**
	 * 停用
	 */
	public void stop(ModuleContext context) throws Exception {
        println "module stop"
	}
}

长远规划

实现一个模块生态圈,能需要什么模块能像nodejs一样从云端下载模块。

成功案例

MRCMS,该项目基于Java开发,采用不使用JSP渲染视图思路设计,在动态插件动态模块方面使用了module4j。

Версии библиотеки

Версия
0.0.1