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中导入依赖包

<dependency>

      <groupId>org.projectlombok</groupId>

      <artifactId>lombok</artifactId>

      <version>1.18.16</version>

      <scope>provided</scope>

</dependency>

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

@Data
public class Person {

    private String name;
    private int age;

}

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

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

@NoArgsConstructor

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

@AllArgsConstructor

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

二 spring

Ioc

1. @Component(掌握)

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

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

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

  用这个注解代替了之前在xml里面的<bean id="userDao"

class="com.itheima.dao.impl.UserDaoImpl"/>
<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标签:<property name="属性名" 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里面的

<!--打开IOCDI的注解开关-->
<context:component-scan base-package="com.itheima"/>

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中的

<!--打开事务的开关-->
<!--<tx:annotation-driven transaction-manager="transactionManager"/>-->
<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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值