Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将控制器/模型//服务/持久性放在maven的不同模块中有什么好处?_Java_Maven_Module_Architecture_Structure - Fatal编程技术网

Java 将控制器/模型//服务/持久性放在maven的不同模块中有什么好处?

Java 将控制器/模型//服务/持久性放在maven的不同模块中有什么好处?,java,maven,module,architecture,structure,Java,Maven,Module,Architecture,Structure,我看到Maven以这种方式组织了几个Java项目: <modules> <module>XX-services-controller</module> <module>XX-services-persistence</module> <module>XX-services-service</module> <module>XX-services-model</mo

我看到Maven以这种方式组织了几个Java项目:

<modules>
    <module>XX-services-controller</module>
    <module>XX-services-persistence</module>
    <module>XX-services-service</module>
    <module>XX-services-model</module>
    <module>XX-services-common</module>
</modules>

XX服务控制员
XX服务持久性
XX服务
XX服务模型
XX公共服务
我可以理解XX公共服务的需求,但我看不出将控制器/视图/服务分离到不同模块中有什么好处。控制器/视图/服务只是层,它们不会独立部署,为什么会有这样的做法


或者实际上这是我们应该避免的坏习惯?

这根本不是坏习惯。当您像这样分离成不同的模块时,这些模块可以被多个其他模块使用,从而减少代码重复


例如,
XX服务持久化
此模块可用于将日期持久化到数据库。因此,当任何其他模块想要将数据持久化到DB时,可以使用该模块。如果这个模块没有分开,那么其他模块将必须实现持久化数据的方法,这将导致代码重复。

我认为,如果每个模块都构建到一个可以导入/部署的jar/war文件中,这是有意义的。如果一个模块没有设置为构建到jar/war中,即使持久性层不在单独的模块中,其他代码/模块仍然可以调用持久性层代码来持久化数据,对吗?我不明白为什么会有代码重复。