java ResultFul 和sping常用注解
什么事ResultFul
区别于post和get固定的请求方式。可以做到使用PUT。DELECT等
使用一个url做到不同的事情(一般对应操作一个数据库表的不同操作)
REST,即 REpresentational State Transfer 的缩写。这个词组的翻译过来就是"表现层状态转化"。
概念
资源(url) /classes/classId/teachers:列出某个指定班级的所有老师
表现形式 如 json,xml,image,txt 等
状态转移 通过增删改
接口规范
动作
GET :请求从服务器获取特定资源。 GET /classes(获取所有班级)
POST :在服务器上创建一个新的资源 POST /classes(创建班级)
PUT :更新服务器上的资源 PUT /classes/12(更新编号为 12 的班级)
DELETE :从服务器删除特定的资源 DELETE /classes/12(删除编号为 12 的班级
PATCH :更新服务器上的资源 改变属性,使用的比较少
命名
url 不能有动词,只有复数名词
使用— invitation-code
添加特定条件的话,建议使用 url 参数的形式(GET /classes?state=active&name=guidegege)
例子
可用注解
@RequestMapping(value="{id}",method=RequestMethod.GET)
@RequestMapping(value="{id}",method=RequestMethod.POST)
@RequestMapping(value="{id}",method=RequestMethod.DELETE)
@RequestMapping(value="{id}",method=RequestMethod.PUT)
或者组合注解
Tips(SpringMVC部分注解)
SpringMVC注解:
1@Controller:标注该类为控制层类
2.@RequestMapping:标注请求的地址
3.@ResponseBody:把java对象转化为json对象
4.@Valid:标注校验该数据
5.@PathVariable:接收uri地址的值赋值给参数
6.@SessionAttributes:保存到Session中
7.@RequestParam:接收参数若参数名不同可用,当没传参数值时可设置默认值
8.@ExceptionAdivice:标注一个类为异常处理类
9.@EcceptionHandler:标注一个方法为异常处理方法
10.@InitBinder:时间参数处理格式
spring注解
类bean的注入
1、@SpringBootApplication=@Configuration(Spring上下文导入bean或配置类)+
@EnableAutoConfiguration(自动配置)+@ComponentScan(描该类所在的包下所有的类)
2、注入注解:@Component(Spring 组件) @Service,@Controller,@Repository(dao层)=@mapper
3、@RestController=@Controller+@ResponseBody( JSON 或 XML 形式数据)
@RestController只返回对象,对象数据直接以 JSON 或 XML 形式写入 HTTP 响应(Response)中,
这种情况属于 RESTful Web服务,这也是目前日常开发所接触的最常用的情况(前后端分离)
bean对象的配置
4、@Scope
5、
前后端传值
@PathVariable 用于获取路径参数 {klassId}
@RequestParam 获取指定参数 ?
@RequestBody 读取Request的body部分并且为application/json 格式的数据,自动将数据绑定到 Java 对象
配置文件的读取
@Value("${property}"
@ConfigurationProperties
PropertySource(不常用) 指定读取某个配置文件
参数校验
校验注解,直接注解加在我们 JavaBean 的属性上面,这样就可以在需要校验的时候进行校验了
lomback参数校验 ((不能为空+指定长度+正则表达式)
常用属性参数校验注解
自定义参数校验属性注解(Validator)
1、自定义注解-》指定2为处理类
2、Validator类-》implements ConstraintValidator<注解,String>
3、javaBean上使用注解
步骤
验证请求体
1、JavaBean 使用lomback+属性参数校验注解
2、 Controller中+@RequestBody @Valid 验证失败,它将抛出MethodArgumentNotValidException 默认为400
3、自定义异常捕获
验证请求参数(Path Variables 和 Request Parameters)
1、 Controller +@Validated
2、@Valid @RequestParam("name") @Size(max = 6,message = "超过 name 的范围了") String name
3、自定义捕获 ConstraintViolationException
验证其他spring组件
使用@Validated和@Valid
全局处理 Controller 层异常
事务 @Transactional
json 数据处理
@JsonIgnoreProperties 作用在类上用于过滤掉特定字段不返回或者不解析。
@JsonIgnore一般用于类的属性上,作用和上面的@JsonIgnoreProperties 一样
@JsonFormat一般用来格式化 json 数据。
扁平化对象 @JsonUnwrapped
private Location location; 去掉Location 的类名
测试注解