SpringBoot注释
SpringBoot注释
@Controller
⼀般标识类,标明该类是控制类
@Controller结合框架的视图解析器return跳转的是页⾯
@RequestMapping(value={"/ur/urinfo"})
.@RequestMapping
⼀般标识⽅法,含有映射地址
@RequestMapping(value={"/ur/urinfo"})
@ResponBody
标识return返回的字符串不再是映射地址,⽽是⼀个数据,前端要⽤ajax去接收,否则会直接把数据打印在⽹页上
@ResponBody
@RequestMapping(value={"/ur/urinfo"})
publicObjecturinfo(HttpSessionssion){
Objectur=ribute(“loginUr”);
Map
(“urname”,ng());
returndataMap;
}
@RequestBody
表⽰接收前端传来的json字符串,不要和@ResponBody混淆了
前端要⽤
$.ajax({
url:"addUr",
type:"POST",
data:ify(data),
contentType:"application/json",//缺失会出现URL编码,⽆法转成json对象
success:function(){
alert("成功");
}
});
中的**ify(data)**来吧前端的对象转换成json字符串,这样后端就可以⽤@RequestBody来接收
了
@ResponBody
@RequestMapping("/enrollinfo")
publicObjectenrollinfo(@RequestBodyEnrollInfoDtoenrollinfo){
info(enrollinfo);
}
@RestController
表⽰这是⼀个控制器,并且对每个⽅法的返回值都会直接转换为json数据格式。
是@ResponBody和@Controller的结合,使视图解析器失效,⼀般表⽰返回⼀个数据并且
由前端的ajax去接收(也是⼀般标识类)
@GetMapping
类似的有@PostMapping,@DeleteMapping…等等,这些都和@RequestMapping*作⽤差不多,差别在于这种表⽰⽅法可以允许映射
地址相同,那靠什么区别他们呢?那就依靠@PostMapping,@GetMapping了去标识了,他们表明了他们对数据的提交或是提取,⽤⽂
字表⾯意思来区分⽽已
@GetMapping("/categories")
@PostMapping("/categories")
通过前端的ajax来调⽤是$.get还是.get来传到后
台,那后台就⽤@GetMapping标识的⽅法来接收数据
@GetMapping是⼀个组合注解是@RequestMapping(method=)的缩写
@PostMapping是⼀个组合注解是@RequestMapping(method=)的缩写
@Autowired:
⾃动装配,这个我看了很久都没有彻底搞懂,我只是看了⼀些项⽬的例⼦,⽐如你创建了⼀个接⼝叫Service,然后我去实例化这个接⼝
叫ServiceImp,这时如果你想调⽤ServiceImp的⽅法,你只要这样:
@Autowired
Servicervice
()——只要⽤@Autowired注释标识这个接⼝,这个接⼝就会⾃动把对应的实现赋予到该接⼝上,所以接⼝可以直接调
⽤实现类的具体⽅法了。
所以⽬前⼤概总结⼀下这个@Autowired:
只要定义⼀个变量时加上@Autowired就会帮你实例化这个对象⾥的所有属性,基本类型和引⽤类型都初始化好,前提是你的引⽤类型也
⽤@Autowired标识了。
@Component
@Service
@Entity
这两个注释⼀般标识类,标识这个类是⼀个Bean,可能是对于开发的需求?不同层的Bean就⽤不同的Bean注释去标识把,⽐如业务层
的就⽤@Service,实体类就⽤@Entity,
泛化点就⽤@Component这个,万⾦油?
@RequestParam
这个应该⼤家都知道把,负责接收前端传来的数据,这个注释的作⽤就是可以起别名,其别名⼀定要与前端数据的名字相同
@ResponBody
@RequestMapping("/enrollIsOut")
publicObjectenrollIsOut(@RequestParam(“enrollaudit”)intenrollaudit,@RequestParam(“enrollid”)intenrollid,
@RequestParam(“groupid”)intgroupid){
IsOut(enrollaudit,enrollid,groupid);
}
@PathVariable
⽤来接收映射地址上⽤花括号括住的参数,好像是resful的标准
@RequestMapping(value=“/arch/{miceid}”)
publicStringarch(@PathVariable(“miceid”)Stringmiceid){
。。。。。
}
@ExceptionHandler(value=)
这个是表⽰异常的,⼀般标识在⽅法上,我也不太了解,反正有这样的初步认识就OK把
数据库表的类的注解
.post来传的,后端也会⽤相对应的注释来接收前端传来的数据,如前端⽤
@Entity
uniqueConstraints={@UniqueConstraint(columnNames={"enrollurcid"})})
@Table(name="enroll",indexes={@Index(columnList="enrollurcid")},uniqueConstraints={@UniqueConstraint(columnNames={"enrollurphone","en
rollmiceid"})})
@Proxy(lazy=fal)
publicclassEnroll{
//报名编号
@Id
@GeneratedValue
privateintenrollid;
@Table
标明这个实体类是⼀个表
其中属性的意思:
name:表名
inidexes:索引(@Index也是索引,columnList是列名)
uniqueConstraints:表⽰字段唯⼀性(@UniqueConstraint也是唯⼀性,columnNames也是列名)
@Entity
是表名该类是⼀个实体类,⽬前⼤多数都是通常和数据库表的类配合使⽤。
@Proxy
英⽂翻译成中⽂是代理的意思
其中lazy是延迟加载的意思(也称懒加载),这⾥lazy=fal意思是⽴即加载,lazy=true才是延迟加载
延迟加载(懒加载):⽬前不需要的东西不加载到内存中,当要⽤的时候才加载到内存中
@Id
表⽰主键
@GeneratedValue
⼀般表⽰⾃增长,⼀般和@Id使⽤
如果数据库控制主键⾃增(auto_increment),不加参数就会报错
@GeneratedValue(strategy=Y)
@Column
表⽰该类属性对应表的列名,如果类的属性和表的列名⼀致的话,可写可不写;不⼀样就要写。
⽐如
你数据库的列名是enrollname
你类的属性名是name
那么你就要在类属性上标注@Column(name=“enrollname”)来达到表和类的关系
@Transactional
事务回滚,⼀般⽤于增删改查数据途中发⽣错误时撤销之前全部有效操作。
简单来说就是防⽌你⼲事⼲了⼀半还有⼀半没⼲。
@Transient
@Transient表⽰该属性并⾮⼀个到数据库表的字段的映射,ORM框架将忽略该属性;
如果⼀个属性并⾮数据库表的字段映射,就务必将其标⽰为@Transient,否则ORM框架默认其注解为@Basic;
@JsonIgnoreProperties({“handler”,“hibernateLazyInitializer”})
避免hibernate懒加载的⽆限递归该实体,导致出现异常
本文发布于:2022-11-24 07:30:31,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/10312.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |