• SSM注解大全


    注解本质上就是一个类,开发中我们可以使用注解取代xml配置文件。

    目录

    注解本质上就是一个类,开发中我们可以使用注解取代xml配置文件。

    一.lombok 注解详情

    @Data

    1.在pom.xml中导入依赖包

    2 .编写实体类,在类名上加载@Data注解即可

    @NoArgsConstructor

    @AllArgsConstructor

    二 spring

    Ioc

    1. @Component(掌握)

    2.@Scope(了解)

    3.@PostConstruct和@PreDestroy(了解)

    DI

    1.@Autowired

    2.@Qualifier

    3.@Resource

    4.@Value

    纯注解

    1 .@Configuration

    2.@ComponentScan:

    3.@PropertySource

    4.@Import

    5.@Bean   

    整合JUnit

    1.@RunWith(SpringJUnit4ClassRunner.class)

    AOP注解

    1.@Aspect

    2.@Pointcut

    3.通知类的一个注解

    4.@EnableAspectJAutoProxy:启用aop的开关事务

    @Transactional

    纯注解

    事务开关

    三 .Springmvc

    基础注解

    1.@Controller:

    2.@RequestMapping:

    3.@RequestParam:

    4.@RequestBody

    5.@PathVariable

    6. @RequestHeader

    7.@ResponseBody

    异常注解

    1.@ExceptionHandler

    2.@ControllerAdvice

    3.@RestControllerAdvice

    四 .springboot

     1.@SpringBootApplication

              2 .Springboot

              3 .@MapperScan


    一.lombok 注解详情

    @Data

    作用:减少我们编写get和set方法和ToString等

    使用方法:

    1.在pom.xml中导入依赖包

          org.projectlombok

          lombok

          1.18.16

          provided

    2 .编写实体类,在类名上加载@Data注解即可

    1. @Data
    2. public class Person {
    3.     private String name;
    4.     private int age;
    5. }

    注:导入后,如果还无法使用在idea中导入lombok插件

    步骤:file->setting->Plugins->Marketplace->搜索lombok安装重启

    @NoArgsConstructor

    作用:作用于类,生成无参构造方法

    @AllArgsConstructor

    作用:生成该类下全部属性的构造方法。

    二 spring

    Ioc

    1. @Component(掌握)

    作用:@Component可以把对象创建出来让spring管理

    把dao/service交给spring管理  让spring创建对象

       用来告诉spring要创建这个类的对象  相当于xml里面的 标签

      用这个注解代替了之前在xml里面的

    1. class="com.itheima.dao.impl.UserDaoImpl"/>
    2. <bean id="us" class="com.itheima.dao.impl.UserServiceImpl"/>

    spring针对着三层架构,定义出来更符合语义的三个注解:
        @Controller : 打在web层   常用
        @Service : 打在service层    常用
        @Repository : 打在dao层    mybatic后就不能在打了

    2.@Scope(了解)

    3.@PostConstruct和@PreDestroy(了解)

    DI

    1.@Autowired

    作用:加了这个注解@Autowired后 就直接可以从spring里面自动拿到对象到service层(使用来注入对象的。

    替代了xml里面的property标签:属性名" ref="userDao/>
    特征:
       (1) @Autowired 是按照属性的类型去spring的容器里面找对象匹配,如果只有一个对象满足这种类型关系那么就注入该对象!
       (2)那么如果在容器当中有多个对象满足这种类型关系,还会拿着属性名当成id名再去匹配一次,如果匹配上了就注入对象。 如果匹配不上,就会报错!

    2.@Qualifier

     作用:
        搭配@Autowired使用,用来告诉@Autowired,要根据指定的id去找对象注入!
        不能单独使用!

    3.@Resource

    作用:
        等价于 @Autowired + @Qualifier 注解。它是根据指定的id来找对象注入。

    总结:@Autowired  @Qualifier  @Resource  都是用来注入对象的

    绝大多数情况下,只要使用@Autowired注解注入即可

    4.@Value

     作用:
       用来注入普通的数据,更多的时候使用来注入properties里面的数据
        要记得先导入properties文件
        在@Value注解里面使用 ${"properties里面的KEY"}

    纯注解

    1 .@Configuration

    (1)标记这个类是一个配置类,等价于 applicationContext.xml
    (2)@Configuration注解是从 @Component注解 衍生出来的,所以它也会被spring管理起来,创建对象

    2.@ComponentScan

    用来告诉spring要扫描哪个包。代替了.xml里面的


    3.@PropertySource

    用来导入外部的properties文件
    如果在编写文件名称的时候,有背景色,那么可以加上 classpath:
        @PropertySource("classpath:db.properties")

     4.@Import

    用来导入其他的配置类|普通类。
    如果我们希望spring也能管理某一个类的对象,除了打上@Component注解之外,还可以使用@Import注解在配置类引入它

    5.@Bean   

    整合JUnit

    1.@RunWith(SpringJUnit4ClassRunner.class)

    使用的是由spring提供的测试环境 , 这份环境的背后会帮助创建工厂对象!

    1. @ContextConfiguration("classpath:applicationContext.xml") // 用来告诉这份环境,配置文件在哪里。

    AOP注解

    1.@Aspect

    表示这个类是一个切面增强类,它里面的方法都是用来增强别人方法的

    2.@Pointcut

    提取AOP的通知类表达式

    3.通知类的一个注解

    @Before:前置通知

    @After:后置通知

    @AfterReturning:返回后通知

    @AfterThrowing:异常后通知

    @Around:环绕通知

    4.@EnableAspectJAutoProxy:启用aop的开关

    事务

    @Transactional

    设置当前类/接口中所有方法或具体方法开启事务,并指定相关事务属性

    纯注解

    @EnableTransactionManagement  

    事务开关

    开启注解驱动,等同XML格式中的注解驱动

    类同于xml中的

    1. <tx:annotation-driven/>

    三 .Springmvc

    区别spring里面的@Controller注解和Springmvc里面的@Controller注解

    基础注解

    1.@Controller:

    (1)表示这个类是一个控制器,可以处理请求。

    (通常出现在web层的普通类上,表示这个类是一个控制器,能够处理请求)

    (2)spring会把这个类管理起来, 创建这个类的对象

    2.@RequestMapping

    用于设置方法的映射路径

    3.@RequestParam:


        作用:要求客户端一定要携带指定名字的参数过来
        属性:
            name|value : 一定要写携带的参数的名字,如果不写,就以形参名为准!,如果写了就以写的为准。
            required: 参数是不是一定要带! 默认是true,  如果是false,就表示可以不带!
            defaultValue: 默认值,如果不带,就赋默认值给形参。
         @RequestParam 可以给每一个参数都加上。

    4.@RequestBody

    作用1:
        1. 用来获取请求体的内容【注意:只有POST请求才有请求体】
        2. 得到的内容是: key1=value1&key2=value2...的结构的字符串
        3. 一般来说这种就没有什么意义!

    作用2: 用来获取客户端提交上来的JSON字符串
    要求:
        1. 页面确实提交上来的是一份JSON数据
        2. 定义一个javabean。类中的属性必须和JSON的属性名字一样
        3. 导入jackson-databind 的依赖
            3.1 如果不导入会报错:  415 Unsupported Media Type
        4. 在方法参数上打上注解 @RequestBody
            4.1 如果不打注解,那么所有的属性都是 默认值!

    5.@PathVariable

    作用:

      用于截取请求地址(url)里面的某些部分的数据。这个需要配合RestFul风格来说明

      localhost:81/delete?id=3    ==========>     localhost:81/delete/3

    属性:

      value: 用于指定 url 中占位符名称。

      required:是否必须提供占位符。


        @PathVariable截取地址栏的数据,它需要搭配RestFul的风格才能使用。
            1. 在映射地址里面使用 {} 来占位,占位符的名字可以随意写,当然也可以写形参的名字
            2. 在形参的前面加上 @PathVariable,即表示要把上面占位符的数据获取到,赋值给方法的形参
                2.1 如果value属性不写,那么默认就是按照形参的名字去匹配占位符。

    6. @RequestHeader

    作用:

      获取指定名字的请求头数据,赋值给方法参数

    (获取指定名称的请求头,赋值给方法的形参)

    属性:

      value:提供消息头名称

      required:是否必须有此消息头 , 默认值是true

    7.@ResponseBody

    不要跳转页面,跳转(字符串)数据  文字说明

    用来描述方法的返回值是一个字符串,这个方法一旦被调用,它的返回值将会直接返回给客户端。

    @ResponseBody 是可以写在方法上,也可以写在类上,如果标记在类上,即表示对所有的方法都生效!

    @ResponseBody和@RequestBody的区别(重点)

    客户端传JSON数据给服务端,服务端要把JSON数据接成javabeen对象,这时我们要用@RequestBody注解,就可以把客户端传过来的JSON数据转换成javabeen对象

    服务端给客户端返回JSON数据,就要用到@ResponseBody注解

    总结 :JSON转换为javabeen   用到的注解是@RequestBody

           javabeen转换为JSON       用到的注解是@ResponseBody

    异常注解

    1.@ExceptionHandler

    用来表示捕捉什么异常,一旦某一个controller方法出现了这种异常那么这个方法将会被调用

    2.@ControllerAdvice

    表示对所有的controller进行增强,其实背后就是采用了AOP的思想,进行了异常增强

    3.@RestControllerAdvice

     springmvc 针对这两个组合做出来一套 二合一的注解:

     @RestController  =  @Controller +  @ResponseBody
    同样在异常处理机制里面也有这样的技巧:
     @ControllerAdvice +  @ResponseBody = @RestControllerAdvice

    4.@CookieValue

    作用:

      用于把指定 cookie 名称的值传入控制器方法参数。

    属性:

      value:指定 cookie 的名称。

      required:是否必须有此 cookie, 默认值是:true

    四 .springboot

    1.@SpringBootApplication

    @SpringBootApplication:
        1. 表示这个类是一个springboot应用程序的入口类。
        2. 要想让程序启动,只需要在main方法里面写上这样的一句话:
              SpringApplication.run(当前类的字节码对象, args);
        3. 拓展:
            3.1 springboot项目启动的时候,默认会扫描启动类所在的位置,以及它后续的所有子包。
            3.2 查找到类里面打的注解 @Controller , @Service , @RequestMapping.
            3.3 springApplication.run 传递进去当前类的字节码对象,也是可以确定当前这个启动器它的包是哪个!

    2 .Springboot

    3 .@MapperScan

  • 相关阅读:
    awk进阶
    【python】python连接Oracle数据库
    Flutter:WebSocket封装-实现心跳、重连机制
    S7-200 SMART PLC 多段曲线控温(带暂停、段搜索、跳段等功能)
    Word处理控件Aspose.Words功能演示:使用 Python 创建 MS Word 文档
    LeetCode 2312. 卖木头块
    仿Modbus消息帧进行通信
    【机器学习】决策树为什么对缺失值不敏感,如何处理缺失值?
    基于springboot的在线电子商城系统设计与实现
    roarctf_2019_easy_pwn
  • 原文地址:https://blog.csdn.net/m0_59281987/article/details/127574034