package com.hllq.quan.controller;

import com.hllq.quan.mapper.WeiboUserMapper;
import com.hllq.quan.model.WeiboUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import com.hllq.quan.mapper.WeiboUserMapper; import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; @RestController
public class WeiboUserController { @Autowired
private WeiboUserMapper weiboUserMapper; @RequestMapping("/selectall")
public List<WeiboUser> selectAll(){
return weiboUserMapper.selectAll();
} // @RequestMapping("/selectbyid/{id}")
// public WeiboUser selectById(@PathVariable("id") int id){
// return weiboUserMapper.selectById(id);
// } @InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
} // 获取url参数值,默认方式,需要方法参数名称和url参数保持一致http://localhost:8080/selectbyid?id=2
@RequestMapping(value = "/selectbyid",method = RequestMethod.GET)
public WeiboUser selectById(@RequestParam Integer id){
return weiboUserMapper.selectById(id);
} @RequestMapping(value = "/insert", method = RequestMethod.GET)
public int insertWeiboUser( WeiboUser weiboUser){
weiboUserMapper.insertWeiboUser(weiboUser);
return 1;
} @RequestMapping(value = "/updatenamebyid" ,method = RequestMethod.GET)
public void updateWeiboUserName(WeiboUser weiboUser){
weiboUserMapper.updateWeiboUserName(weiboUser);
} @RequestMapping(value = "/deletebyid",method = RequestMethod.GET)
public void deleteById(@RequestParam Integer id){
weiboUserMapper.deleteById(id);
}
}

@RestController:用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集

@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。

value:     指定请求的实际地址
method: 指定请求的method类型, GET、POST、PUT、DELETE等
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
params: 指定request中必须包含某些参数值是,才让该方法处理
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求

@Autowired:自动导入依赖的bean

@PathVariable指定URL变量名,前提是RequesrMapping需要用{}表面他的变量部分

@RequestMapping("/users/{username}")

{username}就是我们定义的变量规则,username是变量的名字
获取的时候: public String userProfile(@PathVariable String username)
或者: public String userProfile(@PathVariable("username") String username) 存在多个的时候:
@RequestMapping("/user/{username}/blog/{blogId}")
@ResponseBody
public String getUerBlog(@PathVariable String username , @PathVariable int blogId) 也可以使用正则表达式,匹配更加精确的变量,定义语法是{变量名:正则表达式}
@RequestMapping("/user/{username:[a-zA-Z0-9_]+}/blog/{blogId}")

@RequestParam:将请求参数绑定到你控制器的方法参数上

语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)

value:参数名

required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。

defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
经常会遇到表单中的日期字符串和JavaBean的Date类型的转换,
在需要日期转换的Controller中使用SpringMVC的注解@initbinder和Spring自带的WebDateBinder类来操作。
WebDataBinder是用来绑定请求参数到指定的属性编辑器.由于前台传到controller里的值是String类型的,当往Model里Set这个值的时候,如果set的这个属性是个对象,
Spring就会去找到对应的editor进行转换,然后再SET进去。

spring-boot 注解解析的更多相关文章

  1. Spring boot注解(annotation)含义详解

    Spring boot注解(annotation)含义详解 @Service用于标注业务层组件@Controller用于标注控制层组件(如struts中的action)@Repository用于标注数 ...

  2. Spring Boot 注解之ObjectProvider源码追踪

    最近依旧在学习阅读Spring Boot的源代码,在此过程中涉及到很多在日常项目中比较少见的功能特性,对此深入研究一下,也挺有意思,这也是阅读源码的魅力之一.这里写成文章,分享给大家. 自动配置中的O ...

  3. Spring Boot注解大全,一键收藏了!

    本文首发于微信公众号[猿灯塔],转载引用请说明出处 今天是猿灯塔“365天原创计划”第5天. 今天呢!灯塔君跟大家讲: Spring Boot注解大全 一.注解(annotations)列表 @Spr ...

  4. Spring boot 注解简单备忘

    Spring boot 注解简单备忘 1.定义注解 package com.space.aspect.anno;import java.lang.annotation.*; /** * 定义系统日志注 ...

  5. 73. Spring Boot注解(annotation)列表【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 针对于Spring Boot提供的注解,如果没有好好研究一下的话,那么想应用自如Spring Boot的话,还是有点困难的,所以我们这小节,说说S ...

  6. Spring 缓存注解解析过程

    Spring 缓存注解解析过程 通过 SpringCacheAnnotationParser 的 parseCacheAnnotations 方法解析指定方法或类上的缓存注解, @Cacheable ...

  7. Spring Boot 注解详解

    一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...

  8. Spring boot注解使用

    1:@SpringBootApplication 注解 a:scanBasePackages 与scanBasePackageClasses配置Spring启动时扫描的包路径或者扫描的字节码文件 b: ...

  9. spring mvc注解和spring boot注解

    1 spring mvc和spring boot之间的关系 spring boot包含spring mvc.所以,spring mvc的注解在spring boot总都是可以用的吗? spring b ...

  10. spring boot注解

    一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...

随机推荐

  1. ftp用的是tcp还是udp_如何通俗地解释TCP和UDP协议和HTTP、FTP、SMTP等协议之间的区别

    HTTP协议 老王喜欢看岛国小片,时常泡在论坛上和网友交流最新资讯,老王是通过浏览器浏览网页的,而浏览器是借助HTTP协议与论坛服务器沟通交流. FTP协议 老王购买了该网站的会员,可以无限制下载高清 ...

  2. csaw密码

    题目:AAoHAR1TIiIkUFUjUFQgVyInVSVQJVFRUSNRX1YgXiJSVyJQVRs=写python脚本: import base64 ciphertext="AAo ...

  3. 【C# 并发编程】开端

    1,异步编程 异步编程就是使用future模式(又称promise)或者回调机制来实现(Non-blocking on waiting). 如果使用回调或事件来实现(容易callback hell), ...

  4. bool 类型位逻辑运算符(| & ^)与条件逻辑运算符(|| &&)的区别

    bool 类型的运算符 & ^|   &&  ||   ! 运算符&&和|| 是短路的,这意味着如果左侧表达式的值足以确定结果,则它们将不会评估其右侧表达式. ...

  5. 基于COCO数据集验证的目标检测算法天梯排行榜

    基于COCO数据集验证的目标检测算法天梯排行榜 AP50 Rank Model box AP AP50 Paper Code Result Year Tags 1 SwinV2-G (HTC++) 6 ...

  6. python+pytest(3)-接口测试一般流程及方法

    首先我们要明确,通常所接口测试其实就属于功能测试,主要校验接口是否实现预定的功能,虽然有些情况下可能还需要对接口进行性能测试.安全性测试. 在学习接口自动化测试之前,我们先来了解手工接口测试怎样进行. ...

  7. vue项目部署到IIS服务器上

    前端Vue项目需要部署到IIS服务器上: 准备工作: 1:部署IIS服务器 2:项目npm run build打包生成需要部署的文件(dist文件夹)我的是manage文件夹 开始部署: 1:复制文件 ...

  8. 【python画圆】pip安装库时出现Read timed out.解决办法

    昨天第一次用python画圆,当时并没有安装numpy库(导入数据包)和matplotlib库(导入图形包),于是尝试用pip安装库 首先,我先更新了pip,如下图: 顺便附上成功截图: 然后安装nu ...

  9. JVM内存模型及GC机制

    一.JVM简介 1.1什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各 ...

  10. BBS项目(一)

    目录 BBS项目(一) 项目开发流程 BBS项目 BBS表分析 自关联 表关系图示 BBS项目(一) 项目开发流程 项目分类 针对互联网用户:抖音,淘宝····· 针对公司内部:后台管理系统··· 针 ...