SpringBoot注释

更新时间:2023-06-14 17:46:29 阅读: 评论:0

SpringBoot注释
SpringBoot 注释
@Controller
⼀般标识类, 标明该类是控制类
@Controller 结合框架的视图解析器 return 跳转的是页⾯
@RequestMapping(value={"/ur/urinfo"})
.@RequestMapping
⼀般标识⽅法 , 含有 映射地址
@RequestMapping(value={"/ur/urinfo"})
大班游戏活动教案大全@ResponBody
标识 return 返回的字符串不再是映射地址, ⽽是⼀个数据, 前端要⽤ ajax 去接收, 否则会直接把数据打印在⽹页上
@ResponBody
@RequestMapping(value={"/ur/urinfo"})
public Object urinfo(HttpSession ssion){
Object ur = Attribute(“loginUr”);
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put(“urname”, ur.toString());
落地镗床
return dataMap;
}
@RequestBody
表⽰接收前端传来的 json 字符串, 不要和 @ResponBody 混淆了
前端要⽤
$.ajax({
url:"addUr",
type:"POST",
昆汀塔伦蒂诺data:JSON.stringify(data),
contentType:"application/json",//缺失会出现URL编码,⽆法转成json对象
success:function(){
alert("成功");
}
});
中的 **JSON.stringify(data)**来吧前端的对象转换成json字符串, 这样后端就可以⽤@RequestBody来接收
节目制作
@ResponBody
@RequestMapping("/enrollinfo")
public Object enrollinfo( @RequestBody EnrollInfoDto enrollinfo) {
llinfo(enrollinfo);
}
@RestController
表⽰这是⼀个控制器,并且对每个⽅法的返回值都会直接转换为 json 数据格式。
是 @ResponBody和@Controller的结合, 使视图解析器失效, ⼀般表⽰返回⼀个数据并且
由前端的 ajax 去接收(也是⼀般标识类)
@GetMapping
类似的有@PostMapping, @DeleteMapping…等等, 这些都和@RequestMapping*作⽤差不多, 差
别在于这种表⽰⽅法可以允许映射地址相同, 那靠什么区别他们呢?那就依靠@PostMapping, @GetMapping了去标识了,他们表明了他们对数据的提交或是提取, ⽤⽂字表⾯意思来区分⽽已
@GetMapping("/categories")
@PostMapping("/categories")
.post来传的,后端也会⽤相对应的注释来接收前端传来的数据,如前端⽤
通过前端的 ajax 来调⽤是 $.get 还是 .get来传到后台, 那后台就⽤@GetMapping标识的⽅法来接收数据
@GetMapping是⼀个组合注解 是@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping是⼀个组合注解 是@RequestMapping(method = RequestMethod.POST)的缩写
@Autowired:
⾃动装配, 这个我看了很久都没有彻底搞懂, 我只是看了⼀些项⽬的例⼦, ⽐如你创建了⼀个接⼝叫 Service, 然后我去实例化这个接⼝叫 ServiceImp, 这时如果你想调⽤ ServiceImp 的⽅法, 你只要这样:
@Autowired
Service rvice
所以⽬前⼤概总结⼀下这个@Autowired:
只要定义⼀个变量时加上 @Autowired 就会帮你实例化这个对象⾥的所有属性, 基本类型和引⽤类型都初始化好, 前提是你的引⽤类型也⽤@Autowired标识了。
@Component
@Service昨日奇迹
@Entity
这两个注释⼀般标识类, 标识这个类是⼀个 Bean,可能是对于开发的需求?不同层的Bean就⽤不同的 Bean 注释去标识把, ⽐如 业务层的就⽤ @Service, 实体类就⽤ @Entity,
泛化点就⽤ @Component 这个,万⾦油?
@RequestParam
这个应该⼤家都知道把, 负责接收前端传来的数据, 这个注释的作⽤就是可以起别名, 其别名⼀定要与前端数据的名字相同
@ResponBody
乘机的近义词@RequestMapping("/enrollIsOut")
public Object enrollIsOut(@RequestParam(“enrollaudit”) int enrollaudit, @RequestParam(“enrollid”) int enrollid,
@RequestParam(“groupid”) int groupid) {
llIsOut(enrollaudit, enrollid, groupid);
}
@PathVariable
⽤来接收映射地址上⽤花括号括住的参数, 好像是 resful 的标准
@RequestMapping(value = “/arch/{miceid}”)
public String arch(@PathVariable(“miceid”) String miceid) {
。。。。。
}
@ExceptionHandler(value = Exception.class)
这个是表⽰异常的, ⼀般标识在⽅法上, 我也不太了解, 反正有这样的初步认识就OK把
数据库表的类的注解
@Entity
uniqueConstraints={@UniqueConstraint(columnNames={"enrollurcid"})})
@Table(name ="enroll", indexes ={@Index(columnList ="enrollurcid")}, uniqueConstraints={@UniqueConstraint(columnNames={"enrollurphone","en rollmiceid"})})
@Proxy(lazy =fal)
public class Enroll {
// 报名编号
@Id
@GeneratedValue
private int enrollid;
@Table
高一学生标明这个实体类是⼀个表
其中属性的意思:
name :表名
inidexes :索引 (@Index 也是索引, columnList 是列名)
uniqueConstraints :表⽰字段唯⼀性 (@UniqueConstraint 也是唯⼀性, columnNames 也是列名)
@Entity
是表名该类是⼀个实体类, ⽬前⼤多数都是通常和数据库表的类配合使⽤。
@Proxy
英⽂翻译成中⽂是代理的意思
其中 lazy 是延迟加载的意思(也称懒加载), 这⾥ lazy = fal 意思是⽴即加载, lazy = true 才是延迟加载
延迟加载(懒加载):⽬前不需要的东西不加载到内存中, 当要⽤的时候才加载到内存中
@Id
表⽰主键
@GeneratedValue
⼀般表⽰⾃增长, ⼀般和 @Id 使⽤
如果数据库控制主键⾃增(auto_increment), 不加参数就会报错
@GeneratedValue(strategy=GenerationType.IDENINY)
@Column
表⽰该类属性对应表的列名, 如果类的属性和表的列名⼀致的话, 可写可不写;不⼀样就要写。
⽐如
你数据库的列名是 enrollname
你类的属性名是 name
那么你就要在类属性上标注 @Column(name = “enrollname”) 来达到表和类的关系
@Transactional
事务回滚, ⼀般⽤于增删改查数据途中发⽣错误时撤销之前全部有效操作。
简单来说就是防⽌你⼲事⼲了⼀半还有⼀半没⼲。
社保算法
@Transient
@Transient表⽰该属性并⾮⼀个到数据库表的字段的映射,ORM框架将忽略该属性;
如果⼀个属性并⾮数据库表的字段映射,就务必将其标⽰为@Transient,否则ORM框架默认其注解为@Basic;
@JsonIgnoreProperties({ “handler”,“hibernateLazyInitializer” })
避免hibernate懒加载的⽆限递归该实体,导致出现异常

本文发布于:2023-06-14 17:46:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1038408.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   加载   映射   属性   标识   地址
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图