gpt4 book ai didi

java - Spring Boot 应用程序我的服务的正确命名和注释是什么

转载 作者:行者123 更新时间:2023-12-05 06:35:51 24 4
gpt4 key购买 nike

我是 Spring Boot 应用程序的新手。我不确定我的应用程序的命名和注释是否正确。

我有以下服务接口(interface)。

@Service
public interface StockService {
public String getStockContent();
public List<StockElement> parseStockContents(String stockContent);
}

我有以下服务实现

@Service
public class StockServiceImpl implements StockService{

public String getStockContent() {
// IMPL removed because it is not relevant to this question.
}


List<StockElement> parseStockContents(String stockContent) {
// IMPL removed because it is not relevant to this question.
}
}

就功能而言,它运行良好。我看到有很多 mvc 命名约定。正如model, entity, repository, repositoryImpl, dao, daoImpl, service, serviceImp, controller等,它们也有相应的注解。

我清楚地了解模型、实体、服务、 Controller 。

我对 dao 和存储库感到困惑。同样在我的代码中,我有服务接口(interface)和实现。我将两者都注释为 @Service 并且它正在工作。我对此感到困惑。都将被注释为@Service。另外,我看到很多地方注解都是@Component。 @Component 有什么用?

你能用一些代码片段详细解释一下吗?

最佳答案

I have confusion about dao and repository.

Spring 存储库(设计和使用)看起来更像是一个 DAO 而不是一个存储库 DDD .所以您可以将其视为 DAO。

Also in my code, I have service interface and implementation. I annotated both as @Service and it is working. I have confusion about it. Will both be annotated as @Service.

接口(interface)应该尽可能地与背后的实现所使用的技术无关。所以用Spring注解接口(interface)不是很可取,Spring也不考虑,最后没用,在实现中定义就够了。

Also, I have seen many places annotation as @Component. What is the use of @Component?

@Component javadoc状态:

Indicates that an annotated class is a "component". Such classes are considered as candidates for auto-detection when using annotation-based configuration and classpath scanning.

Other class-level annotations may be considered as identifying a component as well, typically a special kind of component: e.g. the @Repository annotation or AspectJ's @Aspect annotation.

您可以将其视为最广泛/通用的构造型注释,因为您将一个类定义为 Spring bean。
例如,您将 @Controller@Service@Repository 构造型注释为一个类,因为该类与其中一个匹配。
有时,它们中没有一个适合您的类,因此您使用 @Component

关于java - Spring Boot 应用程序我的服务的正确命名和注释是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49465830/

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