千家信息网

Act Framework多模块开发指南是什么

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家介绍Act Framework多模块开发指南是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。ActFramework 是一个Java的非轻量级全栈式MVC框架。
千家信息网最后更新 2026年11月04日Act Framework多模块开发指南是什么

这篇文章给大家介绍Act Framework多模块开发指南是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

ActFramework 是一个Java的非轻量级全栈式MVC框架。和其他框架相比ActFramework的主要特点有:

  • 强大的参数绑定。 控制器方法可以绑定任何Java类型,包括基本类型,字符串,enum,数组,集合类型,Map类型和用户自定义的POJO

  • 灵活的路由配置 - 支持注入和路由表配置

  • 符合JSR330标准的依赖注入

  • 内置CSRF,XSS防护

  • 内置CORS,支持SPA前后端分离

  • 功能完备的数据库访问层

  • 完整的RESTFul服务支持

  • 优秀的运行时性能

  • 支持不同运行环境的配置

  • 支持多种模板引擎

  • 非Servlet框架, 容易开发和部署

  • 多种插件,包括mongodb,Excel输出,OAuth认证,认证/授权/记账等

作为一个ActFramework的忠实粉,从Act 1.0版本开始,看到Act一步一步越来越完善,更加成熟。如果你想更快速的开发RESTFul的服务,ActFramework不失为一个很好的选择。

前面格林大神已经分享了如何在ActFramework的世界迈出第一步,从无到有,搭建一个Act的工程,具体内容可以参看这里。这篇博客得到很多小伙伴的一致好评,小伙伴并不满足于初级使用,很多小伙伴通过各种方式,询问了跟多关于Act的问题,其中一部分是关于如何创建多模块的Act应用和工程。今天,这里介绍的就是如何一步一步的搭建多模块Act应用和工程。

1. 构架工程

我们首先构架一个多模块,多应用的工程,主要满足以下几方面的功能。

  1. 发布的应用应该和内部模块独立区分

  2. 应用下面可能有多个独立App

  3. 模块下面根据功能不同,可能会有多个子模块

所以,我们设计得结构大概如下所示。

project├─applications│  ├─genji│  ├─hanzo│  └─nexus└─modules    ├─core    ├─data    └─ware

applications下面是将来会发布的独立的三个应用,genji,hanzo和nexus

modules是工程的内部依赖的模块,这些模块可能会被应用全部或者个别依赖。

有了工程大概的设计模型,我们下一步开始搭建工程

2. 搭建工程

搭建工程,实现以上架构。这里用Maven做为管理工具。具体的POM可以见下面。

2.1 工程的POM

    4.0.0                            sonatype-nexus-snapshots            Sonatype Nexus Snapshots            https://oss.sonatype.org/content/repositories/snapshots                            false                                        true                                                    sonatype-nexus-snapshots            Sonatype Nexus Snapshots            https://oss.sonatype.org/content/repositories/snapshots                            false                                        true                                        org.actframework        act-starter-parent        1.8.19.0            me.domall    domall    domall :: project    pom    1.0.1                applications        modules                    1.0.1        1.0.1        1.0.1        8.0.12        27.0.1-jre        1.2.3        4.12        2.2.0        3.1.0        1.8        UTF-8        UTF-8                                                                    org.apache.maven.plugins                    maven-compiler-plugin                                            ${java.version}                        ${java.version}                        true                        lines,vars,source                                                                        org.apache.maven.plugins                    maven-resources-plugin                                            true                                                                        org.apache.maven.plugins                    maven-assembly-plugin                                            true                                                                        org.apache.maven.plugins                    maven-dependency-plugin                                            true                                                            

顶部工程比较核心的部分是申明下面会有2部分大模块applications和modules

            applications        modules    

2.2 Application工程

Applications 工程下面有三个独立的Application,这里仅以Nexus工程为例,其它类似。

    4.0.0                domall        me.domall        1.0.1            domall-applications    pom    domall :: applications                hanzo        nexus        genji                                                me.domall                domall-core                ${domall-core.version}                compile                                        me.domall                domall-data                ${domall-data.version}                compile                                        me.domall                domall-ware                ${domall-ware.version}                compile                                        org.actframework                act                ${act.version}                                        org.actframework                act-aaa                ${act-aaa.version}                        

可以看到applications下面包含三个独立的应用Genji,Hanzo和Nexus

2.2.1 Nexus 工程

工程的配置POM

    4.0.0                domall-applications        me.domall        1.0.1            domall-nexus    domall :: applications :: nexus                me.domall.nexus.Nexus                                me.domall            domall-core                            me.domall            domall-data                            me.domall            domall-ware                            org.actframework            act                            org.actframework            act-aaa                                                        org.apache.maven.plugins                maven-compiler-plugin                        

2.3 Modules 工程

Modules工程和Applications工程类似,唯一不同,Module下面的模块发布出来是Jar包,只能被其它模块或者应用引用。

    4.0.0                domall        me.domall        1.0.1            domall-modules    pom    domall :: modules                core        data        ware                                                me.domall                domall-core                ${domall-core.version}                compile                                        me.domall                domall-data                ${domall-data.version}                compile                                        org.actframework                act-aaa                ${act-aaa.version}                                        org.actframework                act-morphia                ${act-morphia.version}                                        org.actframework                act-eclipselink                ${act-eclipselink.version}                                        mysql                mysql-connector-java                ${mysql-connector.version}                                        com.google.guava                guava                ${guava.version}                                        org.slf4j                slf4j-api                ${slf4j-api.version}                                        junit                junit                ${junit.version}                test                                        org.assertj                assertj-core                ${assertj.version}                test                        

Modules下面的子模块和Applications下面的应用一致,这里不再一一列举。

3. ACT多模块支持

看完前面的内容,我们可以发现,我们在Act里面的多模块多应用的工程基本和Spring的工程是看起来一样的。的确Act支持标准的Maven构架的工程,所以Act的多模块和多应用工程是标准的Maven多模块工程。

3.1 IDEA 支持

既然是标准的Maven工程,所以我们把工程导入到Intellij IDEA,配置完对应的IDEA的配置,IDEA是完全可以识别,没有任何的问题。

既然IDEA能正确的识别Maven标准的多模块应用,那么大家的疑惑和问题在哪里呢?

大家的疑惑和问题主要是在我们启用Act Application的时候,会失败,IDEA会告诉你找不到对应的引用的模块。

这是为什么,怎么解决呢?

我们先来看看怎么解决在IDEA里面的正确的启动多模块引用的应用。

3.1.1 配置支持

为解决在IDEA下面启动和执行Act多模块的问题我们可以选择在工程的配置文件中添加配置。

因为Act是支持多环境的,一般我们默认在IDEA里面启动是DEV,所以我们需要在Dev下面的配置中添加相关的配置。

这里我们还是以Neuxs工程的配置为例:

############################################# Act multi-modules configuration for DEV############################################base=../../modulesmodules=${base}/core;${base}/data;${base}/ware

配置的核心就是需要配置modules属性,并指定该应用引入的模块的相对位置或者绝对位置,我们推荐使用相对位置。

3.2 运行支持

刚才我们知道如何在IDEA里面支持Act的多模块。那么我们发布出来的App应用,在PROD环境下面怎么支持呢?是不是也把Prod下面的配置文件加上配置?

首先我们看到Act默认发布的App是tar.gz的形式,tar.gz里面包含了我们的Act依赖和我们自己工程的依赖,并且在启动是,会把lib下面的资源自动加载到运行环境,所以我们不需要对Prod下面的配置文件做任何修改,Act Application在启动时会自动发现放置于lib下面的依赖的包。

注意:

  1. 我们在定制多模块应用的时候,需要在POM中指明发布格式和引用,这样我们发布出来的tar.gz才能正确的包含模块下的Jar文件。

  2. 如果我们需要修改子模块的资源文件,我们可以在POM文件中做相应的设置和修改。例如:

    org.apache.maven.plugins    maven-resources-plugin            false        ${project.build.outputDirectory}                                    ${project.parent.parent.basedir}/modules/core/src/main/resources                false                                        ${project.parent.parent.basedir}/modules/data/src/main/resources                false                                        ${project.basedir}/src/main/resources                false                                        ${project.basedir}/src/main/resources                true                                    **/.version                                            org.apache.maven.plugins    maven-assembly-plugin            false        org.apache.maven.plugins    maven-dependency-plugin            false        org.apache.maven.plugins    maven-jar-plugin    ${maven-jar-plugin.version}                        me/**            

4. 结束语

Java工程的多模块多应用是标准的Maven工程的设置,Act的工程发布出来,在生成环境是可以完美支持的。并不需要做特殊的修改。

为了支持开发模式下找到工程源文件来编译,需要在对应的Dev的配置中申明Modules配置。记住下面这个配置,Act多模块多应用不是难题。

modules=/;/;...

这里顺便解释下为什么IDEA下面需要配置Modules参数,而Spring的工程不需要呢?这是因为Spring在IDEA下面有专门的插件,插件告诉了IDEA在哪里去找各个Spring引入的模块,但Act没有IDEA的专门插件,所以我们只能在配置中申明一下,这样开发模式就完全没有问题了。

关于Act Framework多模块开发指南是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

工程 模块 配置 应用 支持 面的 开发 文件 标准 问题 环境 独立 内容 小伙 小伙伴 插件 类型 运行 不同 三个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技有限公司 广州大一互联网络科技有限公司 美国互联网保险保险科技 互联网科技未来 互联网与未来科技 北京互联网络科技有限公司 互联网金融科技平台 广州凡科互联网科技 深圳期待互联网科技 人人互联网科技是培训 互联网5g黑科技有哪些 未来五年的互联网科技 洛阳共同富裕互联网科技有限公司 中和天地互联网科技有限公司 科技互联网的核心竞争力 上海京穆互联网科技有限公司 2021互联网科技公司排名 互联网科技实习生岗位 扫呗互联网科技有限公司 优雇互联网科技有限公司 期待互联网科技 浩特互联网科技 居家互联网科技有限公司 富国互联网科技创新基金 互联网科技教育视频 国大互联网教育科技有限公司工作 浙南科技城互联网大厦建设工程 长沙茂晟互联网科技有限公司 普陀区互联网教育科技管理办法 唐山双旺合互联网科技产业园
0