Maven common公共模块怎么导入user模块的实体类? 例如: LoginInfo --> User Role Permission

今天天气不错啊 发布于 04/15 20:58
阅读 74
收藏 0

例如: user模块下有实体类 User,Role,Permission, 用户登录后, 将信息组装成一个新类 LoginInfo, 里面含有List<Role> ,List<Permission>, 然后再放到redis中. 其他模块 根据userId 也需要返回一个LoginInfo. 

 父模块怎么引用子模块的类? 如果含有同包名的类会怎么样? 例如common模块下 com.csdn.model.User, user模块下也有com.csdn.model.User ,会怎么样?(测了下 在user模块下 用User 使用的是user模块下的) 

难道要把user底下涉及到的model类全部搬到common包下?

请问下 这种情况是怎么做的? 谢谢

加载中
0
爱吃猫的鱼0313
爱吃猫的鱼0313

你把子模块的jar导入到父模块就能调用了

0
今天天气不错啊
今天天气不错啊

引用来自“爱吃猫的鱼0313”的评论

你把子模块的jar导入到父模块就能调用了

谢谢. 但这个可能不行啊. user依赖common  , common不能再回过去依赖user吧,而且 common还会成为其他模块 如order的dependency...

今天天气不错啊
今天天气不错啊
回复 @爱吃猫的鱼0313 : 好,谢谢帮助。我去实践体会下
爱吃猫的鱼0313
爱吃猫的鱼0313
回复 @今天天气不错啊 : 哦, 如果冗余了, 建议直接分出来比较好, 然后两个子模块同时调用就可以了
今天天气不错啊
今天天气不错啊
回复 @爱吃猫的鱼0313 : 最外面的parent 的<package/>只是pom,不含main/resource (spring boot 那种), 然后里面的子模块是common,user,order.....等等. 是这样的一个样子
爱吃猫的鱼0313
爱吃猫的鱼0313
你这个到底是一个父模块一个子模块还是两个子模块?
0
今天天气不错啊
今天天气不错啊

网友的热心回答. 应该可行. 这要看你用的什么框架,dubbo?还是其他,或者不是微服务架构?
不管怎么样,直接暴露entity给其他模块用并不够好,你可以新建一个user模块的dto工程给其他工程依赖,这个可以跟服务的接口放在一起,当然这是dubbo的最佳实践,你这也可以按照这种方式做.     (在公共模块里 添加和user模块类似的实体类DTO, 然后user模块controller里返回的数据, 把user的entity类 重新赋值给DTO类,然后返回)

大概如此,entity类只跟随数据库变化,不允许修改,这样每次变化都是生成出来的,避免代码被覆盖的风险
DTO可以多个也可以一个,这个就比较灵活了,这样模块之间的耦合度也降低,不然你数据库变化,其他依赖模块就要修改,有DTO的话修改都可以只局限在自己模块之内,你自己做好兼容即可

地址:https://bbs.csdn.net/topics/392566474

返回顶部
顶部