V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
odirus
V2EX  ›  Java

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

  •  
  •   odirus · 2017-01-11 14:55:17 +08:00 · 2310 次点击
    这是一个创建于 2680 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    手上有个项目,分成两大部分,包括:网页程序,爬虫程序,其中网页程序和爬虫程序共用很多 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 单独打包

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

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

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

    等我完善之后就开源,/t/318212 ,一直拖到现在了
    odirus
        15
    odirus  
    OP
       2017-01-20 18:58:39 +08:00
    以前一直使用 Spring MVC 模块重复造轮子,很少考究 Spring 本身的各种含义,看来还得多多学习。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2852 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 15:39 · PVG 23:39 · LAX 08:39 · JFK 11:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.