我们可以在DTO类

时间:2017-04-28 05:46:02

标签: spring spring-mvc design-patterns

我正在使用Spring Restful和Hibernate。为了消除代码中的冗余,我想避免在每个方法中创建DTO的对象,并希望用@Component注释声明它,我想知道DTO有什么特定的规则,因为我们有一些POJO和JavaBeans的指南。

2 个答案:

答案 0 :(得分:0)

检查Spring Doc

https://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-stereotype-annotations

7.10.1 @Component和进一步的构造型注释

Spring提供了进一步的构造型注释:@ Component,@ Service和@Controller。 @Component是任何Spring管理组件的通用构造型。 @Repository,@ Service和@Controller是@Component的特殊化,用于更具体的用例,例如,分别在持久性,服务和表示层中。因此,您可以使用@Component注释组件类,但是通过使用@ Repository,@ Service或@Controller注释它们,您的类更适合通过工具处理或与方面关联。例如,这些刻板印象注释成为切入点的理想目标。在以后的Spring Framework版本中,@ Repository,@ Service和@Controller也可能带有额外的语义。因此,如果您选择在服务层使用@Component或@Service,@ Service显然是更好的选择。同样,如上所述,已经支持@Repository作为持久层中自动异常转换的标记。

答案 1 :(得分:0)

你可以创建一个返回DTO类的Object的静态方法,你可以从任何地方调用这个方法来获取这个类的实例。

private DTOObject dtoObject;
public static DTOObject getInstance() {
    if(dtoObject == null) {
        dtoObject = new DTOObject();
    }
    return dtoOject;
}