加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java-使用Service的Spring Entity,可能存在设计缺陷,但仍然

发布时间:2020-12-15 01:18:12 所属栏目:大数据 来源:网络整理
导读:我正在“ springwrapping”的遗留数据库的ID是Strings,并且提供了一些信息.例如,一个UserId看起来像“ DK-6715-00001”,表示丹麦的一个用户,邮政编码6715.它被包裹在企业应用程序中,因此需要保留,我的实体在其setter方法中对此进行了验证. 但是,用户还具有国

我正在“ springwrapping”的遗留数据库的ID是Strings,并且提供了一些信息.例如,一个UserId看起来像“ DK-6715-00001”,表示丹麦的一个用户,邮政编码6715.它被包裹在企业应用程序中,因此需要保留,我的实体在其setter方法中对此进行了验证.

但是,用户还具有国家/地区和邮政编码字段,因此,在设置Bean的ID时,也可能还要设置国家/地区和邮政编码.为此,它需要CountryService查找Dk是丹麦的Country对象,并在PostalService中使用新发现的Country对象查找6715.

首先,可以将其连接起来,以便可以从我的Entity对象访问CountryService和PostalService吗? (实体是在bean定义中的服务对象之前定义的).首先,这应该违反任何不错的设计原则.我有什么更好的设计可以让我的实体携带对服务bean的引用?

干杯

尼克

最佳答案
如果您正在寻找设计建议,这是我的0.02美元:实体不应该引用服务bean.服务应该在实体上运行,而不是相反.因此,如果您发现您需要在一个实体类中引用服务,则可能表明该实体类中的业务逻辑过多.根据经验,只要实体类只处理单个逻辑对象或相当简单(例如equals方法),业务逻辑就可以在实体类中使用.但是,如果业务逻辑是“跨实体”(涉及多个实体对象),则应在服务Bean中实现它.

如果您不在乎我的想法,而只是想让设计工作:您可以使用AspectJ将Spring bean引用注入实体中.我相信它需要AsjectJ额外的编译步骤和/或运行时支持.无法使用Spring正确地执行此操作,因为在使用new关键字创建实体对象时需要注入服务对象,而Spring不支持该关键字.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读