gpt4 book ai didi

autowired - 何时使用 Spring 的 @Repository 注解?

转载 作者:行者123 更新时间:2023-12-04 01:10:10 27 4
gpt4 key购买 nike

阅读时 creating custom queries in Spring ,我注意到没有一个类( UserRepositoryCustomUserRepositoryCustomImplUserRepository )使用 @Repository注解。

我对此感到惊讶,因为通常所有 Spring 应用程序类都用一些东西进行注释,以便检测它们并为它们生成代理。这就是面向方面的框架在 Java 中的工作方式。

然后我检查了我的旧工作代码,发现我的存储库界面也没有使用注释。然而,它是@Autowired作为 Controller 和使用它的其他类的依赖项。例子:

// AddressRepository.java
public interface AddressRepository extends CrudRepository<Address, String> {
}

// Repositories.java
@Getter // lombok
@Component
public class Repositories { // autowire this to have access to all repo's
private final AddressRepository addressRepository;

@Autowired
public Repositories(AddressRepository addressRepository) {
this.addressRepository = addressRepository;
}
}

这引出了问题: 什么时候应该使用注解? Spring 的组件扫描如何自动检测到未注释的类?

最佳答案

它为所有用 @Repository 注释的 bean 激活持久性异常转换,让 JPA 持久性提供者抛出的异常转换为 Spring 的 DataAccessException 层次结构。

这意味着在该类中抛出的所有未经检查的异常都将转换为 DataAccessException。

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.create-instances

关于autowired - 何时使用 Spring 的 @Repository 注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55728634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com