打包的艺术

最近项目中要求进行模块化,如何才可以做到功能的自由组合呢?传统的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>

简单几步就可以让你的页面和你代码打包到一起,走到哪里都不分开。

猜你喜欢

转载自my.oschina.net/u/1436757/blog/820270