注解

@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配置文件中的,作用为:配置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属性定义了被标注字段在数据库表中所对应字段的名称

你可能感兴趣的:(注解)