说明:本次改造是在上面两次博客的基础上进行的
1.传统==》SOA架构
1.1 改造 表现层与业务层关系
(1)将项目打包方式改为war
(2) 从web 项目下面复制一份到 工程下
(3)service的web.xml 删除掉 编码过滤配置 及 前端控制器
删除web工程中web.xml的 spring加载配置
(4) 将spring的相关配置文件 移动到service工程下
(5) 将web工程从后台父工程下面移出来(与后台父工程平级)
重新导入web工程
删除 web工程与后台父工程的关系
(6) 将service层的接口提出
因为当service工程改造为war类型,web工程是无法依赖的
新建service层接口 工程
将业务层的接口代码剪切到接工程中
(7) 表现层(web工程)改造
(7.1) 父工程是总父工程了
(7.2) pom.xml 添加内容
a. 引入spring的坐标
b. 引入service接口工程 坐标
c. 引入Tomcat插件
1.2 引入dubbo(2处 在service 配置文件 及 springmvc配置文件)
首先给两个配置文件分别引入dubbo坐标
<!-- 发布服务:把接口service发布Zookeeper注册中心 --> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="guang-manager-service"/> <!-- 使用multicast广播注册中心暴露服务地址 --> <!-- <dubbo:registry address="multicast://224.5.6.7:1234"/> --> <!-- 使用dubbo通过Zookeeper协议注册服务 --> <dubbo:registry protocol="zookeeper" address="192.168.76.133:2181"/> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 声明需要暴露的服务接口 --> <!-- 创建需要发布对象--> <bean id="itemServiceImpl" class="cn.guang.shopping.manager.service.impl.ItemServiceImpl"></bean> <!-- 发布服务 --> <dubbo:service interface="cn.guang.shopping.manager.service.ItemService" ref="itemServiceImpl" /> |
上面的代码当做模板使用
引入dubbo的约束
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" http://code.alibabatech.com/schema/dubbo
|
约束出现的叉叉解决方法:
https://my.oschina.net/springMVCAndspring/blog/2050498
springmvc中引入dubbo
约束与上面配置一样
1.3 安装zookeeper
安装教程:
https://my.oschina.net/springMVCAndspring/blog/2050353
2. 测试
2.1 打包
因为项目进行了较大改造 所以首先要重新打包
2.2 启动项目
启动生产者:
启动消费者:
2.3 访问项目
没有序列化实体类:
再次访问:成功
项目改造完成
3. 分享源码
https://gitee.com/Luck_Me/SOA/attach_files