Java Spring Boot框架 注解的使用

1 篇文章 0 订阅
@Controller
public class Example {
    /**
     * @RequestMapping 注解
     * 提供“路由”信息。它告诉Spring,任何带有 / 路径的HTTP请求都应该映射到 home 方法。 
     * @RestController 注释告诉Spring将结果字符串直接渲染回调用者。
     */
    @RequestMapping("/")
    public String home() {
        return "Hello World!";
    }
    
    @GetMapping("/prints")
    // @ResponseBody 表明:该方法返回的是数据
    public @ResponseBody prints(String name) {
        return name;
    }
    
    // void:表明该方法无返回值
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Example.class, args);
    }
}

@Controller注解:

表明该类所有的方法返回页面路径,但是在方法上加了@ResponseBody后,该方法返回的是数据。

如果我们还想返回界面可以使用 ModelAndView 方法

@RequestMapping("/")
public ModelAndView index(){
	ModelAndView model = new ModelAndView("xxx/xxx"); //界面路径
    return  model;
}

@PathVariable 获取url中的数据:

如果我们需要获取Url=localhost:8080/hello/id中的id值,实现代码如下:

@RestController
public class HelloController { 
    @RequestMapping(value="/hello/{id}", method = RequestMethod.GET)
    public String sayHello(@PathVariable("id") Integer id){
        return "id:" + id;
    }
}

 

如果我们需要在url有多个参数需要获取,实现代码如下:

@RestController
public class HelloController {
    @RequestMapping(value="/hello/{id}/{name}", method = RequestMethod.GET)
    public String sayHello(@PathVariable("id") Integer id, @PathVariable("name") String name){
        return "id:" + id + " name:" + name;
    }
}

 @RequestParam 获取请求参数的值:

@RequestParam 用来处理ContentType: 为 application/x-www-form-urlencoded编码的内容,不管用GET、POST方式提交都行。

如果我们需要获取id参数,地址:localhost:8080/hello?id=1000,实现代码如下:

 

@RestController
public class HelloController {
    @RequestMapping(value="/hello", method = RequestMethod.GET)
    public String sayHello(@RequestParam("id") Integer id){
        return "id:" + id;
    }
}

地址:localhost:8080/hello?id 如果不输入id的具体值,此时返回的结果为null。

地址:localhost:8080/hello 如果不输入id参数,则会报错。

@RequestParam 注解给我们提供了这种解决方案,即允许用户不输入id时,使用默认值,实现代码如下:

 

@RestController
public class HelloController {
    @RequestMapping(value="/hello", method = RequestMethod.GET)
    //required=false 表示url中可以不穿入id参数,此时就使用默认参数
    public String sayHello(@RequestParam(value = "id", required = false, defaultValue = "1") Integer id){
        return "id:" + id;
    }
}

@RequestBody注解:

该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;

@RequestBody 接收的是一个Json对象的字符串,而不是一个Json对象。在ajax请求往往传的都是Json对象,用 JSON.stringify(data)的方式就能将对象变成字符串。

 

@GetMapping、@PostMapping 组合注解:

@GetMapping = @RequestMapping(method = RequestMethod.GET)的缩写,是一个组合注解 

@PostMapping = @RequestMapping(method = RequestMethod.POST)的缩写,是一个组合注解

 

Spring4.3 中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。

 

注意:

1.接收时间的参数前面要加上@DateTimeFormat(pattern=”“)注解

2.同时对于LocalDateTime类型,注解里面的时分秒不能省略,前端也必须传进来,传的时候必须是双位数!如果没有,就要用00:00:00表示

3.LocalDate 类型的注解也可以加上时分秒,但是年月日后面的不会被接收和显示。

@ApiModelProperty(value = "创建时间", example = "2019-10-18")
@DataTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime create_time;

 

 

 

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值