说到组件式开发,比较抽象。打个比方,就好像是积木,散着的时候,各个是个独立的东西,但是通过一系列的组合,他就会成为一个新的整体。java web追求的是解耦,这样的一种组件式开发,其实也完成了这个功能。程序员是独立的,每个程序员有自己的特长与喜好,假如组件分为dao组件,service组件,以及web前端组件,把所有喜欢和数据库打交道的程序员分到dao组件下,所有喜欢业务的程序员分到service组件下等等。只要接口不变,每个程序员都不用关心别的组件到底是怎么开发的,更不用关心别的组件是用的什么框架。
下图是一个图片说明:
理想是美好的,那能不能实现呢?一般来说,项目都是MVC结构,而且大部分项目都会使用SSH或者SSM架构,通过spring把整个MVC紧密的结合在一起。代码上依赖注入实现解耦,但有个前提是你接口的实现类必须要由spring管理的。那么想要实现组件式,就不能采取这样的一种方式。因为组件是相互独立的,简单说就是两个完全不同的项目。
我们使用maven来构建项目。环境是jdk64位,tomcat7.0.61 64位,Eclipse luna64位。首先创建一个Maven Project作为父项目,起名叫module-parent。
为了方便下载,在pom文件里加上私服以及junit
4.0.0 scc-module module-parent 0.0.1-SNAPSHOT pom module-parent 父项目 org.eclipse.m2e lifecycle-mapping 1.0.0 org.apache.maven.plugins maven-resources-plugin [1.2,) resources testResources org.apache.maven.plugins maven-compiler-plugin 2.1 UTF-8 nexus nexus http://192.168.1.31:8081/nexus/content/groups/public/ true true nexus nexus http://192.168.1.31:8081/nexus/content/groups/public true true junit junit 4.11
然后关键的来了,建立组件。先建一个maven module,取名叫module-dao
紧接着同上建立service的module,这里记得不能直接点finish,要点next,在packing那里选择war,以下是建好的目录结构
篇幅不够了,下篇说吧