最近,我和我的朋友讨论了有关Spring @Autowire
在entity(JPA
)类上使用注释的问题。
在我们的项目中,我们使用@Autowire
注解进行注入,Entity
但是我的朋友建议不要@Autowire
在实体类上使用注解。当我问为什么?他对此没有正确的答案。所以我只想知道@Autowire
在实体类上使用注释是否有任何缺点。
还请@Autowire
举例说明何时进行注释。
预先感谢。
@Entity和@Autowire不可互换。
@Entity注释表示JavaBean是一个持久实体,它实际上是JPA注释而不是Spring注释。
packagesToScan权限将在sessionFactory中使用@Entity。
@Autowired:按类型注入资源,即按类或带注释的字段或承包商的接口。见我的答案注入和资源以及自动
装配注释@Autowired用于注入依赖项,作为通过xml配置进行设置的替代方法
也许这个答案可以帮助您了解Hibernate-不是从jar中扫描的带弹簧注释的实体
更新:在下面的注释中:
公司是您的域对象,因此在这种情况下您无需使用spring。
<bean id="company" class="xxx.Company"/>
上面的代码将使用@autowire返回相同的实例。
即使您切换到scope =“ prototype”,我也没有看到使用spring的任何理由。您应该有一个将用于CRUD公司的服务,例如CompanyService,该服务将是单音,因此您将使用@Autowire将其注入到控制器中,并且它将使用您的JPA框架来实现CRUD的
要创建新公司,您将使用:
Company c = new Company //this probably will be binded from your ui form
companyServic.saveOrUpdate(c);
请参阅以下答案spring rest service-休眠dao-注解-pojo-namedqueries。对于DAO和服务的常见做法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句