Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
389 views
in Technique[技术] by (71.8m points)

spring如何实现领域驱动模型DDD呢

领域驱动模型, 让实体类有了一部分的业务方法, 那么在实体类中 @Autowired 一个 Dao 或者 MyBatis Mapper就不成功啊, 因为这个实体类不是 Component, 实体类都是 new 着用的

@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
class Role{
    private Long id;
    private String name;
    
    //getter/setter
    
    //some method
    @Autowired
    private RoleMapper roleMapper;
    
    public boolean isBindMenu(){
        roleMapper.xxxxx();
    }
}

在其他地方如service中, 不能 new Role()啊, RoleMapper 注入不进来


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

我不建议过早的把DDD的model的实现基于某一个framework来做,先实现model,而框架最好在某一个部分使用,简单的把entity认为是POJO + service的实现更是比较可笑和不理解真正ddd精髓的做法。DDD不是具体依赖某种语言进行实现的,那么加入换成ruby或者php怎么办?更何况spring并不是DDD的framework。所以,我的建议是试图理解如何设计model和实现的。更重要的是,把ddd的某一个buiding block单独拿出来使用那是完全错误的,完整的应用这些buiding block保证了你如何可以是一个相关领域业务逻辑的实现是高度偶尔,保证business state的准确性和非多样性。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...