【SpringBoot】常用注解

@Controller

标记在类上面,类就是一个Controller对象;只是定义了一个控制器类。

@RestController

写在Controller类之前,添加该注解即可返回JSON格式的数据;
@RestController = @Controller + @ResponseBody,

@ResponseBody

是将return的数据结构转换为JSON格式。	

@RequestMapping("/url")

映射 Request 请求与处理器,是真正处理请求的处理器。
写在Controller类前或类方法前,表示该类或该方法映射的URL,当我们访问该URL时,就会自动调用相应的处理方法

@PostMapping

相当于@RequestMapping(method = ReuqestMethod.POST )

@GetMapping

相当于@RequestMapping(method = ReuqestMethod.GET )

@PathVariable(GET专用)

通常我们用URL Template样式映射,即url/{param}这种形式,我们可以获取到URL后的参数;

@RequestParam(POST、GET均可)

用于获取多个参数,以及application/x-www-form-urlencoded传来的JSON对象,在()中传入需要获取参数的参数名;

@RequestBody(POST专用)

用的最多的注解,该注解与@RequestParam作用类似,区别在于:
	将①传来的多个参数用Map或Entity统一接收,而不用对每个参数分别写注解;
	②application/json传来的Json字符串的处理;

@Autowired

是类型驱动的注入

@Resource

是名称驱动的注入	[参考](https://baijiahao.baidu.com/s?id=1722572804842285538&wfr=spider&for=pc)

一般用在类属性或者setter方法上声明属性需要自动装配
1.Resource注解中指定了bean的名称,则Spring会只按注解中的bame属性查找合适对象,然后进行装配.
2.Resource注解中没有指定bean名称,先按类属性的变量名查找,如果还是未找到,则按类型进行查找.

@Data

注在类上,提供类的get、set、equals、hashCode、toString等方法

@GridBase()

用来标注表格是否启动分页,是否启用导出功能,是否支持后端加载数据等功能 

@Table()

声明此对象映射到数据库的数据表,通过它可以为实体指定表
```常用属性:	name命名当前实体类对应的数据库中表名;
				uniqueConstraints 用来批量命名唯一键 批量命名 ;
```

@Column()

用来标识实体类中属性与数据表中字段的对应关系
```常用属性:	name 定义被标注字段在数据库表中所对应字段的名称;
				unique 表示该字段是否为唯一标识
				nullable 表示该字段是否可以为null值
				table 表示当映射多个表时,指定表的表中的字段
				
```

@FormLayout()

表单布局样式

@Id() 和 @GeneratedValue()

@Id 标注用于声明一个实体类的属性映射为数据库的主键列
@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定底层数据库的主键生成策略:
	```SqlServer对应identity,MySQL 对应 auto increment
		–IDENTITY:采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式; 
		–AUTO: JPA自动选择合适的策略,是默认选项; 
		–SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 
		–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。
	```

@GridColumn()

查询条件,默认为模糊查询,可以设置等于、大于、小于查询

@Excel()

导入导出功能来加快数据的操作, 在需要被导入导出的实体类属性添加
```常用属性:	name	列名
				width	列宽
				isWrap	是否换行
				needMerge	是否合并单元格式
```

@JsonFormat()

用来表示json序列化的一种格式或者类型,是一个时间格式化注解实现日期格式自动格式化 (出参)
```常用属性:	pattern: 表示日期的格式
				timezone: 默认是GMT,中国需要GMT+8
				shape: 表示序列化后的一种类型,枚举
				locale: 根据位置序列化的一种格式	
```

@DateTimeFormat

格式化参数	(入参)
```常用属性:	pattern: 表示日期的格式
```

@JSONField()

可以用在方法(method),属性(field)以及方法中的参数(parameter)上
```常用属性:	@JSONField(ordinal =0)    序列化字段的顺序,默认是0
				@JSONField(name = “”)   	用于解决属性名和key不一致的情况
				@JSONField(format = “yyyy-MM-dd HH:mm:ss”)    用在Date属性上,自动格式化日期
				@JSONField(serialize = false)    是否要把这个字段序列化成JSON字符串,默认是true
				@JSONField(deserialize = false)    字段是否需要进行反序列化,默认是true
```

@Transient

不做库表的orm 映射处理, 但在程序中仍然可以使用它.
`无get方法时使用`

@Param

为SQL语句中参数赋值而服务的,作用就是给参数命名
	@Param注解基本类型的参数
		~~~
		mapper中的方法:
			public User selectUser(@Param("userName") String name,@Param("password") String pwd);
		映射到xml中的<select>标签
		<select id="selectUser" resultMap="User">  
		   select * from user  where user_name = #{userName} and user_password=#{password}  
		</select>
		~~~
		
	@Param注解JavaBean对象
		~~~ SQL语句通过@Param注解中的别名把对象中的属性取出来然后复制
		mapper中的方法: 
			public List<User> getAllUser(@Param("user") User u);
		 映射到xml中的<select>标签
		 <select id="getAllUser" parameterType="com.vo.User" resultMap="userMapper">  
			select   
			from user t where 1=1  
				 and   t.user_name = #{user.userName}  
				  and   t.user_age = #{user.userAge}  
		</select>  
		~~~

@Transactional

是声明式事务管理 编程中使用的注解
实质是使用了 JDBC 的事务来进行事务控制的

@Builder

posted @ 2022-10-09 15:14  Phoenixy  阅读(105)  评论(0编辑  收藏  举报