• Spring全家桶相关注解总结


    spring相关

    @Controller

    控制器】效验有效参数的合法性(相当于安检系统)

    @Service

    【服务】业务组装(客服中心)

    @Repository

    数据持久层】实际业务处理(实际办理的业务)

    @Component

    【组件】工具类层(基础的工具)

    @Configuration

    【配置层】配置

    上面四个注解功能是一样的,都可以用来创建bean实例

    2.注入,装配

    (1)@Autowired:

    根据属性类型进行自动装配,默认按类型装配(byType)自动装配

    • 作用于:标注 引用类型的构造器,方法,方法参数,注解

    (2)@Resource:

    可以根据类型注入,可以根据名称注入(byName),标注 类,字段,方法:

    (3)@Qualifier:

    根据名称进行注入,这个@Qualifier注解的使用,和上面@Autowired一起使用,
    如果有多个类型一样的Bean候选者,则需要限定其中一个候选者

    (4)@Value:注入普通类型属性

    注解在属性上,单个注入
    支持 SpEL

    1. 从配置文件读取值
      @Value("${property}")
      @Value("${property:默认值}")
    2. SpEL
      @Value(“#{SpEL表达式}”)

    @ConfigurationProperties

    通过指定的前缀,绑定配置文件中的配置
    可以注解在类上,也可以放在@Bean的方法上。批量注入配置文件中的属性

    一般用于多个数据源的配置,读写分离

    @PropertySource

    加载指定的配置文件

    @ImportResource

    标注在一个配置类,导入Spring的配置文件让其生效

    Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别。
    需要用@ImportResource加载生效

    3.完全注解开发

    创建配置类,替代xml配置文件

    @Configuration :

    作为配置类,替代xml配置文件

    @ComponentScan(basePackages = {“包名”}):

    开启注解扫描

    4.在增强类上面添加注解

    @Aspect,可与@Component注解一起使用生成代理对象

    5.AOP相关 

    在增强类的里面,在作为通知方法上面添加通知类型注解,使用切入点表达式配置
    (1)@Before:表示作为前置通知
    (2)@After:最终通知
    (3)@AfterReturning:后置通知(返回通知)
    (4)@AfterThrowing:异常通知
    (5)@Around:环绕通知
    (6)@Pointcut:用于相同的切入点抽取

    6.bean的生命周期

    • @Scope("作用域")作用范围设置

    • @PostConstruct初始化 Java自己的注解

    • @PreDestroy销毁

    7.SpringMVC 

    @Component的衍生注解
    @Controller 标注类 : 对应 Spring MVC 控制层Controller对象,主要用于接受用户请求并调用 Service 层返回数据给前端页面。
    @Service 标注类 : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao层。
    @Repository 标注类 : 对应持久层即 Dao 层,主要用于数据库相关操作。
    http Request 请求处理方法映射

    @RequestMapping标注类,

    方法 : http路径映射到处理类或方法

    @GetMapping() 标注方法 :

    http GET请求路径映射

    @PostMapping()标注方法 :

    http POST请求路径映射

    @PutMapping标注方法 :

    http PUT请求路径映射

    @DeleteMapping标注方法 :

    http DELETE请求路径映射

    前端>后端传值

    @PathVariable

     获取 路径参数

    @RequestParam 

    获取 请求参数 url中的?后面的参数

    @RequestBody 

    获取 请求Body中JSON字符串

    后端>前后端传值

    @Controller 

    返回一个视图

    @ResponseBody

    标注类,方法: 用于Controller方法返回的对象,写入http的body区

    @RestController

    标注类: = @Controller + @ResponseBody

    MyBatis注解

    mapper

    • @Mapper 在接口类上添加,该接口是mapper
    • @MapperScan(value) 包下面的所有接口都是mapper

    value:指定mapper接口类包路径

    basePackages = 扫描包、类
    sqlSessionFactoryRef = SqlSessionFactory Bean对象名
    sqlSessionTemplateRef = sqlSessionTemplate Bean对象名

    sql语句配置

    @Select(“select * from user”)
    @Insert(" insert into user ( name ) values (#{name}) ")
    @Delete(" delete from user where id= #{id} ")
    @Update("update user set name=#{name} where id=#{id} ")
     

    其他

    @Data : 标注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法

    异常处理

    @ControllerAdvice + @ExceptionHandler

    @ControllerAdvice 表
    示控制器通知类,@ExceptionHandler 是异常处理器,两个结合表示当出现异常的时候执⾏某个通知,也就是执⾏某个⽅法事件

    AOP

    @Aspect 切面

    @Join Point 连接点

    @Pointcut切点

    @Advice通知

    • 前置通知使⽤ @Before:通知⽅法会在⽬标⽅法调⽤之前执⾏。
    • 后置通知使⽤ @After:通知⽅法会在⽬标⽅法返回或者抛出异常后调⽤
    • 返回之后通知使⽤ @AfterReturning:通知⽅法会在⽬标⽅法返回后调⽤。
    • 抛异常后通知使⽤ @AfterThrowing:通知⽅法会在⽬标⽅法抛出异常后调⽤。
    • 环绕通知使⽤ @Around:通知包裹了被通知的⽅法,在被通知的⽅法通知之前和调⽤之后执行自定义的⾏为。

    持续补充中~~~~~~~~~~

  • 相关阅读:
    微信小程序获取手机号phonenumber.getPhoneNumber接口开发
    本月第三次,亚马逊AWS再次遭遇宕机
    Vue 实现 Hover 功能( mouseover 与 mouseenter 的区别)
    sqli-labs/Less-58
    AOP切入点表达式
    K8S之调度约束+故障排查
    golang工程——grpc-gateway 转发http header中自定义字段到grpc上下文元数据
    虚拟机的四种网络模式对比
    JSON一些注意语法点
    嵌入式FreeRTOS学习六,FreeRTOS中CPU寄存器与RAM内存和Flash之间的数据传输,以及栈空间的作用
  • 原文地址:https://blog.csdn.net/qq_48584557/article/details/132765902