簡體   English   中英

Spring Boot-需要什么注釋

[英]Spring Boot - What Annotations Are Needed

我是Spring Boot的新手,我只是想知道我是否需要我目前擁有的主要方法上的所有注釋。

    @Import(ServiceConfiguration.class)
@SpringBootApplication(scanBasePackages = {"com.myproject.rest",})
@EnableJpaRepositories({"com.myproject.dao.jpa"})
@EntityScan(basePackages = "com.myproject.domain.jpa")

類ServiceConfiguration.class具有以下注釋

    @Configuration
@EnableConfigurationProperties({SlackServiceProperties.class})

我的數據庫對象帶有@Entity批注,其余類具有@RestController批注,而服務類具有@Component批注

只是想知道是否都需要它們,或者我可以排除其中的任何注釋嗎?

謝謝

如果您的主要方法位於頂級程序包中,那么您所需要做的就是:

@SpringBootApplication

它將自動遞歸掃描您的源代碼,並選擇任何@ Bean@Component@Configuration

如果您使用以下啟動器,還將自動配置Spring Data JPA:

spring-boot-starter-data-jpa

我認為這可能取決於您的需求,因為在您的示例中我沒有使用其中的一些。 當涉及到批注的幕后工作時,我不太熟悉Spring的所有“魔術”。 我只有一個功能完善的Spring Boot應用程序,

@SpringBootApplication
@Configuration
@ComponentScan

為了,

@SpringBootApplication是Spring識別此應用程序來自Spring Boot的方法(例如,結果是,沒有web.xml文件)。

@Configuration告訴Spring在src路徑上尋找.properties文件。 例如,在這里,您可以定義一個“ application.properties”文件來定義您的數據源(供Spring使用的數據庫信息)。

@Component告訴Spring在啟動應用程序時尋找“ Components”。 在整個應用程序中都可以找到@ Controllers,@ Service等。

有關許多Spring注釋的更准確,更深入的解釋,我可以指導您:

http://www.techferry.com/articles/spring-annotations.htmlhttps://dzone.com/refcardz/spring-annotations

它們都具有出色的說明和注釋示例。

編輯: @Configuration和@ComponentScan包含在@SpringBootApplication中,正如Strelok在評論中指出的那樣。

希望能有所幫助。

如果您按照以下方式構建代碼:

com.myproject
 - Application.java
com.myproject.configuration
 - ServiceConfiguration.java
 - OtherConfiguration.java
com.myproject.dao.jpa
 - .. your repositories..
com.myproject.domain.jpa
 - .. your @Entity classes...

需要使用@SpringBootApplication注釋您的Application類。

Spring Boot將自動掃描和配置所有@Configuration ,存儲庫,其他@Component@Service類。 這意味着你不需要手動@Import配置,你不需要@EnableJpaRepositories@EntityScan

Spring Boot配置JPA所需要做的只是包括JPA啟動器:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

您可以按照以下教程進行操作: https : //spring.io/guides/gs/accessing-data-jpa/

您將看到它需要最少的注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM