SpringMVC + ( maven) 中代码复用问题

2017-01-11 14:55:17 +08:00
 odirus

背景

手上有个项目,分成两大部分,包括:网页程序,爬虫程序,其中网页程序和爬虫程序共用很多 dao 、 service 组件,所以在 maven 中拆解为:

project-dao, 数据库的操作
project-service 封装数据库、缓存以及其他的实现逻辑
project-web 后台爬虫程序,打包成 jar
project-spider 使用 SpringMVC 写的网页展示,打包成 war

问题描述:

打包 project-web 的时候很方便,直接丢进 tomcat 就可以运行

但打包 project-spider 的时候会涉及到 SpringMVC 的相关配置文件、依赖等,以及这个 jar 程序如何启动才能加载 SpringMVC 上下文环境等问题

目前是把 project-spider 作为 SpringMVC 的一个组件,一起运行,这样解决了上下文的问题,但还是想把两个程序独立分开。

请问有没有优雅的方式把 project-spider 单独打包

2316 次点击
所在节点    Java
15 条回复
eightqueen
2017-01-11 14:59:10 +08:00
maven 子模块难道搞不定?
ihuotui
2017-01-11 14:59:33 +08:00
加一个 rpc ,把调用的接口变为 rpc 。
odirus
2017-01-11 15:06:15 +08:00
@eightqueen 现在能运行,但不够优雅,如果有类似的项目,感激不尽
domty
2017-01-11 15:06:36 +08:00
project-spider 分拆,用 rpc 保持和 web 项目间的通讯。

话说我现在也在琢磨类似的问题。以上就是初步的想法。
odirus
2017-01-11 15:06:44 +08:00
@ihuotui 这个就复杂了,微项目,不想整那么复杂
odirus
2017-01-11 15:07:25 +08:00
@domty 我也期待得到更加合适的方案
odirus
2017-01-11 15:14:40 +08:00
既然没有更多的意见,我就尝试一下把 SpringMVC 的全部依赖打包到 project-spider.jar 吧
misaka19000
2017-01-11 15:42:06 +08:00
个人也觉得把爬虫拿出来做一个 rpc 比较好
odirus
2017-01-11 15:51:48 +08:00
@misaka19000 恩,现在比较赞同使用 rpc
odirus
2017-01-11 15:52:17 +08:00
当然也期望有能力的人指点迷津,补齐我这个方面的短板
darrenfang
2017-01-12 06:59:36 +08:00
project-web 后台爬虫程序,打包成 jar ?
project-spider 使用 SpringMVC 写的网页展示,打包成 war ?

没有说反吗?
odirus
2017-01-12 10:12:03 +08:00
@darrenfang 思维严谨,感谢,确实说反了。
darrenfang
2017-01-12 18:09:39 +08:00
project-spider 为什么会依赖 spring mvc ?
odirus
2017-01-20 18:57:39 +08:00
额。。。。事实证明,不用 RPC 也可以做到很完美的组件复用。

等我完善之后就开源,/t/318212 ,一直拖到现在了
odirus
2017-01-20 18:58:39 +08:00
以前一直使用 Spring MVC 模块重复造轮子,很少考究 Spring 本身的各种含义,看来还得多多学习。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/333867

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX