首页 > 其他分享 >【SpringBoot】常用注解

【SpringBoot】常用注解

时间:2022-10-09 15:25:05浏览次数:54  
标签:常用 SpringBoot 映射 Param user 注解 主键 属性

@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

标签:常用,SpringBoot,映射,Param,user,注解,主键,属性
From: https://www.cnblogs.com/phoenixy/p/16771053.html

相关文章

  • Springboot整合es
    参考文章链接​​SpringBoot操作ES,实现各种骚操作查询-知乎​​二、整合方式boot整合es三种方式SpringBoot整合ES的三种方式(API、RESTClient、Data-ES)_jacksonary的博客......
  • 一文搞懂springboot启动原理
    https://cloud.tencent.com/developer/article/1449134温馨提示如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。关注公众号回复关键字领取免费学习资源-电......
  • mongo常用
    默认端口 介绍27017 mongod和mongos实例的默认端口,你可以通过port或--port改变该端口27018 设置--shardsvr运行变量或在配置文件里设置clusterRole为shards......
  • docker常用命令
    镜像命令1.启动类命令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestartdocker查看docker状态:systemctlstatusd......
  • SpringBoot 后台服务端 杂记
    由于公司人手不足,导致桌面应用、微信小程序以及两端对应的服务端都由我自己开发。为了加快开发进度,采用SpringBoot+SpringSecurity+JWT的方式(桌面应用的服务端,微信小......
  • SpringBoot 下载文件
    下载文件  SpringBoot接口输出文件流&Vue下载文件流,获取Header中的文件名@SpringBootTestclassDownloadTests{Loggerlogger=LoggerFactory.getLogger......
  • springboot中对各个层的理解
    springboot中对各个层的理解1、entity层:实体层,数据库在项目中的类。也被称为model层,pojo层。用于定义与数据库对象的属性,提供get/set方法,带参和无参的构造方法。一般数......
  • 常用virsh命令
    常用虚拟机操作virsh命令ssh到计算节点执行,以下命令中的vm-name表示虚拟机的名称;查看virsh的版本:virsh -version查看virsh的帮助命令:virsh --help查看主机下的所......
  • springboot整合ssm详细讲解
    SSM是企业中广泛应用的框架。大家再熟练地使用SSM进行业务逻辑开发的时候,也被它大量的xml配置困扰。今天快速优雅的使用SpringBoot实现简易的SSM工程。废话不多说,comeon开......
  • Springboot整合缓存
    一、缓存的引入一个应用主要瓶颈在于数据库的IO,大家都知道内存的速度是远远快于硬盘的速度(即使固态硬盘与内容也无法比拟)。应用之中经常会遇到返回相同的数据(数据字典,行政......