注解

作者: 希望我是摩羯座 | 来源:发表于2021-03-16 17:16 被阅读0次

    @Autowired:

    它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作

    容器自动装载了一个后置处理器,扫描到@Autowied就会在IoC容器自动查找需要的bean,并装配给该对象的属性

    如果有不止一个X类型的bean或者不存在X类型的bean,会抛出BeanCreationException异常。可以使用@Qualifier配合@Autowired

    表现层注入的是实现类对象,接收的接口;理解为多态;(Controller–Service–ServiceImpl–Mapper)

    Service接口有多个ServiceImpt实现类的情况,就需要指定参数名来选择哪个ServiceImpt实现类

    模块和模块之间通过接口对接,主要为了模块间的解耦

    @Resource:

    作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource则默认按byName自动注入。

    @Resource(name="X")

    @Controller用于标注控制层组件、@Service服务层组件、@Repository持久层组件、@Component泛指组件

    如果一个类带了这些注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了

    @Value:该注解的作用是将我们配置文件的属性读出来,有@Value(“${}”)和@Value(“#{}”)两种方式

    @Value("${}"):配置文件application.properties中

    @Value("#{obj.property? :default_value}"): SpEL表达式对应的内容,#{}里面那个obj 代表对象。

    @Transactional:声明式事务的一种实现方式

    rollbackFor:用于指定能够触发事务回滚的异常类型,如果有多个异常类型需要指定,各类型之间可以通过逗号分隔。

    @Transactional 只能应用到 public 方法才有效

    添加位置:实现类或类方法上,而不是接口和接口方法上。

    @Configuration:

    用于定义配置类,可替换xml配置文件

    标注在类上,相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文)

    @EnableDiscoveryClient    作用:能够让注册中心发现,并扫描到该服务

    @FeignClient:处理微服务各个子模块下的模块方法互相调用,(各子模块系统内部通信的核心)必须在Interface接口上使用

    参数:value: 服务名,path: 定义当前FeignClient的统一前缀

    @GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写

    @PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写

    @requestBody注解:

    用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。

    一般情况下来说常用其来处理application/json类型。@RequestBody接受的是一个json格式的字符串,一定是一个字符串。

    解析客户端(移动设备、浏览器等)发送过来的json数据,并封装到实体类中。

    swagger注解:

    @Api:修饰整个类,描述Controller的作用

    @ApiOperation:描述一个类的一个方法,或者说一个接口

    @ApiParam:单个参数描述

    @ApiModel:用对象来接收参数(当参数太多的时候,需要定义太多的参数,可以使用对象来接收)

    @ApiProperty:用对象接收参数时,描述对象的一个字段

    @ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改

    @NotNull:一般用在基本类型上,不能为null,但可以为empty,没有Size的约束

    @NotBlank:只能用在String上面,不能为null且trim()之后size>0

    @NotEmpty:用在集合类上面,不能为null或者长度为

    要配合 @valid 注解使用,不然不会生效。

    @Valid @Validated :

    使用@Validated或者@Valid在基本验证功能上没有太多区别。但是在分组、注解地方、嵌套验证等功能上两个有所不同

    注解位置:

    @Validated:可以用在类、方法和方法参数上。但是不能用在成员属性(字段)上

    @Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上

    @Validated:用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。

    @Valid:用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。

    @Async:注解异步处理

    基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

    事务处理:将需要事务管理操作的方法放置到异步方法内部

    @Async所修饰的函数不要定义为static类型,这样异步调用不会生效

    @Param:

    持久层注解,一般用于mapper接口,方法传参之前加上;传递参数,从而可以与SQL中的的字段名相对应。

    xml文件里#{}里面的名称对应的是@Param括号里面修饰的名称。

    @Data:

    包含了@Getter、@Setter、@ToString、@EqualsAndHashCode

    @Entity注释指名这个java类是一个实体类,实体类的每个实例代表数据表中的一行数据,数据行中的一列对应实例中的一个属性。

    @Table:用来标识实体类与数据表的对应关系

    @Column注解来标识实体类中属性与数据表中字段的对应关系

    name属性定义了被标注字段在数据库表中所对应字段的名称

    相关文章

      网友评论

          本文标题:注解

          本文链接:https://www.haomeiwen.com/subject/ukydcltx.html