【发布时间】:2019-09-11 07:28:39
【问题描述】:
我正在开发一个 Spring 应用程序,我在这个项目中将功能和层划分为单独的模块。
例如:
└── xx-common
└── xx-service
└── xx-web
└── xx-app
但是,我必须设置很多 bean,所以我有很多配置类,在这些类中创建的 bean 将用于模块中分布的组件。
所以,我有两种不同的样式来管理我的配置类:
第一个,一个模块中的所有配置:
该项目的所有配置类在一个模块中,因此我们可以在一个包中查看所有配置。
└── xx-common
└── xx-service
└── xx-web
└── xx-app
└── com.xxx.config
└── ServiceConfig
└── DbConfig
└── WebConfig
└── MQConfig
或者,像 Harry 的选项一样,我也可以将所有配置类放入更合适的模块中,例如 xx-common:
└── xx-common
└── com.xxx.config
└── ServiceConfig
└── DbConfig
└── WebConfig
└── MQConfig
└── xx-service
└── xx-web
└── xx-app
第二个,每个模块只包含它需要的配置:
每个模块都包含自己必要的配置类。
└── xx-common
└── xx-service
└── com.xxx.config
└── ServiceConfig
└── DbConfig
└── MQConfig
└── xx-web
└── com.xxx.config
└── ServiceConfig
└── WebConfig
└── xx-app
目前我正在使用选项一,但我不确定哪种结构布局会更好。谁能给我每种风格的pros和cons并推荐正确的风格?
【问题讨论】:
-
如果您使用第一个选项,当
SecurityConfig发生时会发生什么?当一项服务想要在同一个数据库引擎中但在不同的服务器/配置中使用不同的数据库时呢?在第一个选项中,每个模块都会将大量不必要的配置加载到应用程序上下文中,并且可能会发生冲突。 -
我认为您应该将所有
config、repository和utils类放在xx-common中
标签: java spring spring-boot directory-structure