SpringBoot常用注解

组件类与配置类

在Spring框架中,组件类和配置类是两个重要的概念,它们扮演着不同的角色。

  1. 组件类(Component Class):
    组件类是指那些使用Spring注解标识的类,如@Component、@Controller、@Service、@Repository等。这些类通常承担特定的业务逻辑、数据访问或控制器等角色。组件类的主要作用是在运行时由Spring容器自动创建实例,并对其进行管理和依赖注入。它们一般用来封装具体的业务逻辑或功能实现。
  2. 配置类(Configuration Class):
    配置类是指那些使用Spring注解标识的类,如@Configuration。配置类主要用于定义Spring容器的配置信息,包括Bean的创建、依赖关系的设置、切面配置、数据库连接等等。配置类中通常会有一些特殊的方法,用于通过@Bean注解声明Bean的创建和配置。
@Configuration //表示当前类是配置类,优先加载
public class MybatisPlusConfig {
    @Bean //表示配置类加载的时候执行这个方法,并且将方法的返回值封装到Spring容器中
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        //1、创建mybatisPlusInterceptor拦截器对象
        MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
        //2、添加分页拦截器
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

组件类和配置类之间的区别可以总结如下:

  • 功能不同:组件类主要用于封装业务逻辑和功能实现,而配置类主要用于定义Spring容器的配置信息。
  • 注解不同:组件类使用的是@Component及其派生注解,而配置类使用的是@Configuration注解。
  • 角色不同:组件类一般扮演特定的业务角色,如控制器、服务类、数据访问类等;配置类用于配置和管理Spring容器的行为。
  • 方法不同:组件类主要包含业务逻辑的实现方法;配置类包含一些特殊的配置方法,通过@Bean注解声明Bean的创建和配置。

通常情况下,Spring应用程序需要包含至少一个配置类,用于整合和配置应用程序的各个组件,并告诉Spring容器如何创建和管理这些组件。组件类由配置类进行扫描和管理,可以通过依赖注入等方式在应用程序中使用。

常用注解

控制层:
  1. @Controller: 用于标记一个类作为Spring MVC Controller的组件。
  2. @RestController: 这是一个组合注解,它包含了@Controller和@ResponseBody。当一个类用@RestController来标记时,它的所有处理方法都默认使用@ResponseBody。
  3. @RequestMapping: 用于将HTTP请求映射到处理器的特定处理方法。它可以在类级别和方法级别使用。
  4. @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping: 这些是@RequestMapping的专用变体,分别用于处理HTTP GET, POST, PUT, DELETE, PATCH请求。
  5. @PathVariable: 用于将一个URI模板变量映射到方法的参数上。
  6. @RequestParam: 用于将请求参数映射到方法的参数上。
  7. @ResponseBody: 用于将控制器方法的返回值绑定到web响应body。
服务层(Service Layer):
  • @Service: 标注在Service层类上,表示定义一个服务组件。
  • @Transactional: 用于方法或类上,声明事务策略。
数据访问层(Data Access Layer):
  • @Repository: 标注在DAO层类上,表示定义一个数据仓库组件,用来封装数据库访问。
JPA

JPA(Java Persistence API)定义了一种Java标准,用于管理关系型数据和对象之间的映射关系。在Spring Boot中使用JPA,通常会创建实体(Entity)类来映射数据库中的表结构。

  • @Entity: 在类级别使用,表示该类是一个JPA实体。
  • @Table: 指定实体对应的数据库表信息。
  • @Id: 表明该成员变量是实体的ID。
  • @Column: 指定实体类的属性映射到数据库表的哪个字段。JPA默认实体类名称与对应的数据库中表的列名称一致

配置和启动:
  • @SpringBootApplication: 组合注解,用于启动Spring Boot应用程序,包含了@Configuration、@EnableAutoConfiguration和@ComponentScan。
  • @Configuration: 表示定义一个配置类。
  • @EnableAutoConfiguration: 让Spring Boot根据添加的jar依赖猜测你的配置。
  • @ComponentScan: 自动扫描并加载符合条件的组件或bean定义。
  • @Bean: 在配置类方法上使用,表示将该方法的返回值定义为一个bean。
测试:
  • @SpringBootTest: 用于测试类上,用来提供Spring Boot应用程序的配置。
  • @DataJpaTest: 提供JPA相关的配置,用于数据层的单元测试。
  • @WebMvcTest: 提供Web层的配置,用于测试MVC控制器。
  • @MockBean: 在Spring Boot测试中,用于添加一个Mockito的模拟Bean用于测试。

相关推荐

  1. SpringBoot注解

    2024-01-17 09:40:02       37 阅读
  2. springBoot 注解

    2024-01-17 09:40:02       17 阅读
  3. springboot注释

    2024-01-17 09:40:02       11 阅读
  4. SpringBoot项目中注解总结

    2024-01-17 09:40:02       15 阅读
  5. SpringBoot20个注解及其作用

    2024-01-17 09:40:02       13 阅读
  6. SpringMVC注解

    2024-01-17 09:40:02       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 09:40:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 09:40:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 09:40:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 09:40:02       18 阅读

热门阅读

  1. EMC整改

    2024-01-17 09:40:02       29 阅读
  2. linux系统nginx工具location指令

    2024-01-17 09:40:02       30 阅读
  3. PHP AES 加密示例

    2024-01-17 09:40:02       30 阅读
  4. 史上最全的spring里面之@Transactional原理解析

    2024-01-17 09:40:02       29 阅读
  5. 常见的查找算法

    2024-01-17 09:40:02       34 阅读
  6. 代码随想录day21

    2024-01-17 09:40:02       31 阅读
  7. 【嵌入式-汇编】常用汇编指令

    2024-01-17 09:40:02       29 阅读