【问题标题】:Struts 2 modular web applicationStruts 2 模块化 Web 应用程序
【发布时间】:2012-03-23 13:55:23
【问题描述】:

我正在使用 Struts 2 Web 应用程序。它有很多模块和功能。我想根据客户要求启用或禁用(或删除)某些模块。但是在单个 WAR 文件部署下的 Struts 2 中,我怎样才能使其成为模块化?是否可以在部署时取出一些模块??

提前致谢。

【问题讨论】:

  • 你能描述一下你所说的模块是什么意思吗?您可以将模块创建为 jar 并根据您的要求使用它们
  • 如果你的意思是像 struts2 命名空间中的模块,你可能想要获取动作映射,并删除你不需要的那个?想法是这样,但是如果你删除映射并且如果调用了命名空间映射,会不会导致异常?

标签: web-applications struts2 modularity modular-design


【解决方案1】:

如果您使用 Maven,那么您可以排除一些类/包,使其不包含在生成的 WAR 中,您还可以有多个目标并以这种方式排除不同的代码子集。

此方法假设您要么将功能分离到多个“struts.xml”动作定义文件中,要么如果您使用带有注释等的 Struts2 约定插件,那么您最终会得到一个非常好的解决方案。

所以,在 pom.xml 中你必须首先排除所有模块:

<build>
    <finalName>badNameUseBuildProfileInstead</finalName>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>**/struts-module1.xml</exclude>
                <exclude>**/struts-module2.xml</exclude>
                <exclude>**/struts-module3.xml</exclude>
            </excludes>
        </resource>
    </resources>
...

然后您创建一个包含所需模块的构建配置文件:

...

<profiles>
    <profile>
        <id>web</id>
        <build>
            <finalName>${project.artifactId}</finalName>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/struts-web.xml</include>
                    </includes>
                </resource>
            </resources>
            ...

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 2013-08-15
    • 2011-11-08
    • 1970-01-01
    • 2014-02-17
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多