编程语言
首页 > 编程语言> > java-模型bean上的分层体系结构和持久性注释?

java-模型bean上的分层体系结构和持久性注释?

作者:互联网

我想在一个新的Java EE Web应用程序中遵循separation of concerns设计原则.如果我理解正确,这意味着我必须在模型/业务层中看不见我的DAL(数据访问层)的技术选择.

当我使用Spring Data Neo4j时,我必须用例如注释我的模型bean. “ @NodeEntity”,专用于Spring Data Neo4J的注释.这似乎将模型层与数据访问层混合在一起.

>我在这里做的分析很好吗?
>如果是这样,如何使用Spring Data Neo4j注释建立一个独立于DAL的模型?

谢谢你的帮助!

解决方法:

常见的解决方案是通过接口原理应用编程,为每个实体和关系创建接口,并使用SDN注释类实现它们.
这样,模型层将仅通过接口访问实体,而无需了解实现.
为了吸引数据库访问操作,您可以创建DAO接口,并使用SDN存储库和/或Cypher查询实现它们.
一个例子:

public interface Item {
    String getName();
    ...
}

public interface ItemDAO {
    Item lookup(String name);
    ...
}

@NodeEntity
public class ItemNode implements Item {
    @GraphId private Long id;
    private String name;
    ...
    public String getName() { return name; }
    ...
}

public class Neo4jItemDAO implements ItemDAO {
    ...
    @Override
    public Item lookup(String name) {
        return neo4jOperations.lookup(ItemNode.class,"name", name).to(ItemNode.class).singleOrNull();
    }
}

在模型类中,您可以通过以下方式访问实体:

@Autowired ItemDAO itemDAO;
Item item = itemDAO.lookup("name");

标签:n-tier-architecture,spring-data-neo4j,spring,java
来源: https://codeday.me/bug/20191030/1965908.html