ssm框架(六)

分模块

 

多模块拆分的必要性
使用Java技术开发的工程项目,无论是数据处理系统还是Web网站,随着项目的不断发展,需求的不断细化与添加,工程项目中的代码越来越多,包结构也越来越复杂这时候工程的进展就会遇到各种问题:

(1)不同方面的代码之间相互耦合,这时候一系统出现问题很难定位到问题的出现原因,即使定位到问题也很难修正问题,可能在修正问题的时候引入更多的问题。

(2)多方面的代码集中在一个整体结构中,新入的开发者很难对整体项目有直观的感受,增加了新手介入开发的成本,需要有一个熟悉整个项目的开发者维护整个项目的结构(通常在项目较大且开发时间较长时这是很难做到的)。

(3)开发者对自己或者他人负责的代码边界很模糊,这是复杂项目中最容易遇到的,导致的结果就是开发者很容易修改了他人负责的代码且代码负责人还不知道,责任追踪很麻烦。

 

配置

我们知道一个大的项目可能有好多个模块,如果做成一个可能不好管理,也不好维护,为此我们开始分模块开发一个项目,首先我们通过maven创建一个父工程

不勾选webapp

 

pom.xml 添加配置文件(properties &&denpendencies)

在父工程下添加moudle

只有ssm_web 创建时,勾选webapp

注意mvn版本、两个地址、以及下方添加。。。

ssm_dao 注意要添加mapper 映射层(resources子目录)

 

使用maven构建模型进行多模块拆分
maven的多模块划分还是比较直观的,每个模块都是一个独立的maven项目,模块之间的相互引用和maven中对jar包依赖的解决是一致的,这使得物理(jar)和逻辑(dependency)上得以保持一致。我们先来看一个完整的多模块项目的组成(使用Maven The Definitive Guide上的例子):

(1)首先是整体的模块关系

引用书上对这些模块的介绍:

simple-model

该模块定义了一个简单的对象模型,对从Yashoo! Weather信息源返回的数据建模。该对象模型 包含了Weather,Condition,Atmosphere,Location,和Wind对象。当我们的应用程序解析Yahoo! Weather信息源的时候,simple-weather中定义的解析器会解析XML并创建供应用程序使用的Weather 对象。该项目还包含了使用hibernate 3标注符标注的模型对象,它们在simple-persist的逻辑中被用来 映射每个模型对象至关系数据库中对应的表。

simple-weather

该模块包含了所有用来从Yahoo! Weather数据源获取数据并解析结果XML的逻辑。从数据源返回的XML被转换成simple-model中定义的模型对象。simple-weather有一个对simple-model的依赖。simple-weather定义了一个WeatherService对象,该对象会被simple-command和simple-webapp项目引用。

simple-persist

该模块包含了一些数据访问对象(DAO),这些对象将Weather对象存储在一个内嵌数据库中。这 个多模块项目中的两个应用都会使用simple-persist中定义的DAO来将数据存储至内嵌数据库中。本项 目中定义的DAO能理解并返回simplemodel定义的模型对象。simple-persist有一个对simple-model的依 赖,它也依赖于模型对象上的Hibernate标注。

simple-webapp

这个web应用项目包含了两个spring MVC控制器实现,控制器使用了simpleweather中定义的WeatherService,以及simple-persist中定义的DAO。simplewebapp有对于simple-weather和simple-persist的直接依赖;还有一个对于simple-model的传递性依赖。

simple-command

该模块包含了一个用来查询Yahoo! Weather信息源的简单命令行工具。它包含了一个带有静态m ain()方法的类,与simple-weather中定义的WeatherService和simple-persist中定义的DAO交互。simpl e-command有对于simple-weather和simple-persist的直接依赖;还有一个对于simple-model的传递性 依赖。

(2)simple-parent项目

simple-parent是所有子模块的父类或者祖先模块,基本上父模块会被用来做为一个“抽象”模块,它不含有实际的可运行或被引用的逻辑代码,parent的pom文件中会声明一些公有的依赖还用一些构建配置例如使用的jdk版本,构建过程中的资源处理,通常在parent的pom中会声明子模块的引用,被引用的子模块在构建parent项目时也会被引用构建,子模块被构建的顺序和其在pom中的声明顺序关系不大,主要由子模块之间的依赖关系决定。maven使用一个被称为reactor(反应堆)的概念来描述这个子模块的构建顺序和依赖处理,记住循环依赖和相互引用在maven解析pom时就会被发现,这与其在parent的pom中声明的顺序是无关的。
 

 

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

 

首先清除之前的 spring security内容(包括删除spring-security.xml)

至能够正常运行

注册

配置并以管理员身份启动zookkeeper.cmd

App.java 运行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值