Spring Boot - 需要什么注释

时间:2017-04-03 20:06:52

标签: java spring spring-boot annotations

我是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注释

只是想知道他们都需要或者我可以排除任何这些注释吗?

由于

3 个答案:

答案 0 :(得分:3)

如果您的主要方法位于顶级包中,那么您只需要:

@SpringBootApplication

它将自动以递归方式扫描您的来源,然后选择所有@ Bean@Component@Configuration

如果您正在使用此启动器,还会自动配置Spring Data JPA:

spring-boot-starter-data-jpa

答案 1 :(得分:1)

我认为这可能取决于你需要什么,因为我没有使用你的例子中的一些。我不太熟悉Spring的所有"魔法"当谈到幕后工作时,它会用注释来完成。我有一个功能完善的Spring Boot应用程序只有

@SpringBootApplication
@Configuration
@ComponentScan

按顺序,

@SpringBootApplication 是Spring识别此应用程序来自Spring Boot的方法(例如,一个结果是没有web.xml文件)。

@Configuration 告诉Spring在src路径上查找.properties文件。例如,您可以在此处定义" application.properties"用于定义数据源的文件(Spring使用的数据库信息)。

@Component 告诉Spring寻找"组件"当它启动应用程序时。几乎可以在整个应用程序中找到@Controllers,@ Service等。

有关Spring的许多注释的更准确和深入的解释,我可以指导您:

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

这两者都有很好的描述和注释示例。

编辑: @Configuration和@ComponentScan包含在@SpringBootApplication中,正如Strelok在评论中指出的那样。

希望有所帮助。

答案 2 :(得分:1)

如果您构建代码如下:

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类。这意味着您 DON' 需要手动@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/

您将看到它需要最少的注释。