关于spirngcloud中common模块的问题

我看了一些开源的项目,他们的common中除了放一些通用的工具类或者项目公共的配置等
为什么不把所有的java bean放进去呢?这样不就可以在各个微服务中进行使用了吗。求解,这个是有什么别的原因吗?

阅读 2.4k
1 个回答

第一个问题:
不能把所有的 bean 都放进去。

只能放一些模块中通用的 bean,比如 spring boot 统一的序列化配置。

如果各种类型的 bean 放多了,会导致模块之间关联性太强,这样修改一个模块势必会影响另一个模块,所以需要严格控制其中的 bean,并且不能随意修改。

第二个问题:
common 顾名思义,是工具类,放 bean 并不合适。

开源项目初始化 bean 的方式是通过 autoconfigure 单独的依赖设置的,应该是 spring boot 的规范。

也就是说一个 spring 体系的开源项目可以大致分为下面三个部分:

  1. 开源项目需要使用的 common 模块,存放自己独有的工具类,不是必须的。
  2. 开源项目的核心部分,主要功能实现的地方,可能不止一个 jar。
  3. 开源项目的 autoconfigure,一般只有一个,帮助实例化核心功能的 bean。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题