Spring Boot 的巨大优势在于我们可以专注于业务规则,从而避免一些繁琐的开发步骤、样板代码和更复杂的配置,从而改进开发并简化新 Spring 应用程序的引导。
为了开始配置新的 Spring Boot 应用程序,Spring Initializr 创建了一个简单的 POJO 类来配置应用程序的初始化。我们有两种方式来装饰配置。一种是@SpringBootApplication当我们的解决方案中的模块较少时使用注释。
如果我们有一个结构更复杂的解决方案,我们需要将不同的路径或我们模块的基本包指定给 Spring Boot 应用程序初始化程序类。@EnableAutoConfiguration我们可以使用和@ComponentScan注释来实现它。@EnableAutoConfiguration指示 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean,同时@ComponentScan允许 spring 在包中查找其他组件、配置和服务,让它在其他组件中找到控制器。
这两个注解不能同时使用@SpringBootApplication。@SpringBootApplication是添加所有这些的便利注释。它等同于使用@Configuration, @EnableAutoConfiguration, 和@ComponentScan它们的默认属性。
package com.BusinessEntityManagementSystem;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@EnableAutoConfiguration
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = {"com.BusinessEntityManagementSystem"})
@EntityScan(basePackages = {"com.BusinessEntityManagementSystem"})
@ComponentScan(basePackages = {"com.BusinessEntityManagementSystem"})
@Configuration
public class BusinessEntityManagementApplication {
public static void main(String[] args) {
SpringApplication.run(BusinessEntityManagementApplication.class, args);
}
}
代码片段中的另一个注释是@EnableJpaAuditing. 审计允许系统跟踪和记录与持久实体或实体版本相关的事件。还与 JPA 配置相关,我们有@EnableJpaRepositories. 此注释启用 JPA 存储库。默认情况下,它将扫描带注释的配置类的包以查找 Spring Data 存储库。在这个注解中,我们指定要扫描注解组件的基本包。
要在项目结构中查找 JPA 实体,我们必须指示自动配置使用@EntityScan扫描包。对于特定的扫描,我们可以指定basePackageClasses(),basePackages()或其别名value()来定义要扫描的特定包。如果未定义特定的包,则会从带有此注解的类的包中进行扫描。
Spring Boot Initializr 创建的类中的最后一个注解是@Configuration. @Configuration将类标记为应用程序上下文的 bean 定义源。这可以应用于我们需要的任何配置类。