最近项目中要求进行模块化,如何才可以做到功能的自由组合呢?传统的BS应用都是将web工程达成一个war包,这对于模块化来说是一个障碍,我们希望每个应用都是以jar包的形式出现,这样的1套jar包涵盖了完整的内容包括ui、domain service、dao等。这样有利于我们在这些基础功能至上进行搭积木。我们应该如何处理,才可以达到这种效果呢?
在demo中使用spring mvc来进行举例。
工程目录结构如下:
.
|____.classpath
|____.gitignore
|____.project
|____.settings
| |____org.eclipse.core.resources.prefs
| |____org.eclipse.jdt.core.prefs
| |____org.eclipse.m2e.core.prefs
| |____org.eclipse.wst.common.component
| |____org.eclipse.wst.common.project.facet.core.xml
| |____org.eclipse.wst.validation.prefs
|____pom.xml
|____src
| |____main
| | |____java
| | | |____com
| | | | |____ruijie
| | | | | |____config
| | | | | | |____CacheConfig.java
| | | | | | |____WebAppConfig.java
| | | | | |____mvc
| | | | | | |____controller
| | | | | | | |____HelloWorldController.java
| | | | | | | |____RestHelloController.java
| | | | | | |____services
| | | | | | | |____RestHelloServices.java
| | |____resources
| | | |____META-INF
| | | | |____resources
| | | | | |____WEB-INF
| | | | | | |____views
| | | | | | | |____hello.jsp
| | | | | | | |____index.jsp
| | | | | | | |____login.jsp
| | | |____resources
| | | | |____html
| | | | | |____test.html
| | | | |____views
| | | | | |____hello.jsp
| | | | | |____index.jsp
| | | | | |____login.jsp
| | |____webapp
| | | |____WEB-INF
| |____test
| | |____java
在spring mvc中要关注静态文件以及jsp文件的处理。配置具体如下:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/html/**").addResourceLocations("classpath:/resources/html/");
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/views/", ".jsp");
}
工程使用maven打包,打包插件如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
简单几步就可以让你的页面和你代码打包到一起,走到哪里都不分开。