gpt4 book ai didi

java - Spring - 使用@Service和@Repository注释同一个类

转载 作者:行者123 更新时间:2023-11-30 06:16:44 25 4
gpt4 key购买 nike

我有时会发现 Spring 组件同时带有 @Service 和 @Repository 注释。像这样的事情:

@Service("carService")
@Repository
@Transactional
public class CarServiceImpl implements CarService {
...
}

或者类似这样的东西:

@Transactional
@Repository
public class EventService {

@Autowired
private EventRepository repository;

public EventEntity save(final EventEntity entity) {
return repository.save(entity);
}

public EventEntity findOne(final String idEvent) {
return repository.findOne(idEvent);
}
}

这样做似乎很方便,但是技术上的实现正确吗?

最佳答案

@Service@Repository 均使用 @Component 进行元注释,这使得它们符合扫描条件。从 Spring 5.0 开始,@Service 不再添加进一步的逻辑,而 @Repository 可以向 Spring DAO 异常集添加异常转换(如果启用)。

但是,还值得注意的是,在您提供的示例中,拥有 EventService 比仅拥有 Spring Data 存储库没有任何优势,并且如果有其他逻辑,那么它就不会像存储库(EventRepository 依赖项是)。

tl;dr:两者都使用@Component@Service,它们之间没有显着差异(@Component正在变得越来越多)通常是因为这个)。

关于java - Spring - 使用@Service和@Repository注释同一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49034604/

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