• SpringBoot和MyBatis常见注解


    目录

    一、Sping相关注解 

    用于启动类上的注解

    用于普通控制器上面的注解

    Rest风格的控制器上面的注解

    用于Service上的注解

    用于Mapper接口中的注解

    配置相关的注解

    IOC注解(控制反转,让扫描器去发现,注册Bean到IOC容器)

    DI注解(依赖注入)

    AOP注解(面向切面编程)

    Spring事务管理注解

    二、Lombok相关注解 

    三、MyBatis相关注解

    用于启动类上的注解

    用于实体类的注解


    面向注解编程

    一、Sping相关注解 

    用于启动类上的注解

            @SpringBootApplication        

              是一个复合注解  由这三个注解复合而成

    @SpringBootConfiguration
            作用与 @Configuration 一样 让当前类成为一个配置类
    @EnableAutoConfiguration  
            开启自动化配置      
    @ComponentScan     开启IOC容器扫描器 自动扫描与当前启动类同级或下级的所有组件类
    

    @MapperScan("")  MyBatis相关注解
     配置Mapper接口所在的包路径,MyBatis基于动态代理模式 在运行时代理所有Mapper接口中方法的实现

    用于普通控制器上面的注解

    @Controller

            让当前类被扫描器发现,并注册对象到IOC容器,并且对象被当作控制器使用

    @RequestMapping

            映射类或方法的请求URL地址,类可以有地址也可以没有,类的url地址是当前类中所有方法url地址的前缀。给类映射url地址的时候不可以指定请求方式,给方法映射url地址的时候可以指定请求方式为get或post,如果不指定默认是get,url地址和请求方式要全局唯一

    @ResponseBody        

            将控制器方法返回的结果直接转化为json格式,然后放到响应报文中进行返回 这样控制器方法只返回数据,不用转发到jsp,它是和ajax发起的http请求一起使用的

    @RequestParam

            用于修正参数名,设置参数是不是必须的

    Rest风格的控制器上面的注解

    @RestController

            定义一个rest风格的控制器

             控制器中所有的方法都默认使用了@ResponseBody注解,只返回数据,不作转发和重定向

    @GetMapping        不能映射类

    @PostMapping       不能映射类

    @PutMapping         不能映射类

    @DeleteMapping      不能映射类

    @PathVariable        用于rest风格的url地址 从url地址的占位符中取值赋给参数

     

    用于Service上的注解

      @Service

            让service类被IOC容器发现

    用于Mapper接口中的注解

     @Param

            当接口中的方法有多个参数的时候,需要用@Param注解修正参数名字,在Mapper.xml文件中根据@Param注解修正后的名字进行取值

    配置相关的注解

    @Configuration

            让任意一个类成为一个配置类

    @Bean

            用于配置类中的方法,将方法返回的对象注册到IOC容器中

    @Value("${配置名}")

            用于读取application.propertis核心配置文件,根据配置名读取配置值,并把值赋给成员变量

    IOC注解(控制反转,让扫描器去发现,注册Bean到IOC容器)

    @Controller  (用于控制器)

    @Service   (用于Service)

    @Repository(用于dao) 用不到了

    @Component     (用于普通组键类,例如用于AOP类)

    @Configuration(用于配置类)

    @Scope 

            用于设置Bean的作用域

            @Scope(“singleton”)单例模式

                    在启动时就会发现和注册Bean放到IOC容器,在使用时不会创建新的Bean

            @Scope(“prototype”)   原型模式

                    在启动时不会发现和注册Bean到IOC容器,在使用时每次都会创建新的Bean

    DI注解(依赖注入)

    @Resource        

            jdk提供的

    @Autowried

            框架自带的

    AOP注解(面向切面编程)

    @Aspect

            定义一个AOP切面类

    @Pointcut ("execution(* com.iweb.springbootshop.controller.*.*(..))")

            定义一个切面表达式,根据表达式寻找被AOP代理增强的目标方法

            

    @Before        

            定义一个前置代理增强的方法

    @AfterReturning

            定义一个返回时代理增强的方法

    @AfterThrowing

            定义一个抛出异常时代理增强的方法

    @After

            定义一个后置代理增强的方法

    @Around

            定义一个环绕代理增强的方法

    Spring事务管理注解

    @Transactional

           1. 可以用于类也可以用于方法,如果用于类则类中所有方法都会开事务执行,用于方法是单个方法开事务执行

            2.可以用于Controller类,也可以用于Service类,或者其他操作数据库的类

    @Transactional(rollbackFor = Exception.class

           3.必须指定rollbackFor=某个异常类型.class,表示当执行过程中发生这种异常时进行回滚,不发生则执行提交

            4.事务隔离级别默认是数据库的默认隔离级别 可以通过isolation设置 取值是枚举类型

            @Transactional(rollbackFor = Exception.class,isolation=isolation.DEFAULT)

            5.可以通过propagation指定事务传播机制,取值是Propagation枚举类型

     

     

    二、Lombok相关注解 

    @Data

            用于自动在字节码中生成getter和setter  toString{ }  重写toString equals hashcode方法

    @Slf4j

            用于在字节码中生成一个全局的静态常量log,用于打印日志

    三、MyBatis相关注解

    用于启动类上的注解

    @MapperScan("")
            配置Mapper接口所在的包路径,MyBatis基于动态代理模式 在运行时代理所有Mapper接口中方法的实现

    用于实体类的注解

    @TableName        映射表名

    @TableId              映射表中的主键ID

    @TableFieId          映射表中的字段

    如果实体类中类名和属性名完全遵守驼峰命名规范,

    数据库表名和字段名完全遵守全小写+下划线连字符规范,

    那么就不需要使用@TableName和@TableFieId   进行手动映射 框架会自动映射

  • 相关阅读:
    RocketMQ笔记-进行中
    buu web部分wp
    MySQL进阶实战1,数据类型与三范式
    基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理MATLAB程序
    光盘如何重装系统教程
    如何使用 Git 进行多人协作开发(全流程图解)
    什么是动态组件以及使用场景
    vue3+elementPlus:el-table-column表格列动态设置单元格颜色
    数学建模完整版
    订单导出(抖音)
  • 原文地址:https://blog.csdn.net/m0_56017821/article/details/126277975