Starter--开箱即用
Spring Boot为了简化配置,提供了非常多的starter,实现了开箱即用。
它先打包好与常用模块相关的所有JAR包,并完成自动配置,然后组装成Starter。这使得在开发业务代码时不需要过多关注框架配置,只需要关注业务逻辑即可。
通过在pom.xml添加依赖之后,使用@Autowired引入,即可使用。
URI与URL
URI(Universal Resource Identifier):统一资源标识符
URL():统一资源定位符
控制器
在Spring MVC中,控制器负责处理由DispatcherServlet接收并分发过来的请求。它把用户请求的数据通过业务处理层封装成一个Model,然后把Model返回给对应的View进行展示。
处理HTTP请求的方法
GET:获取资源
DELETE:删除资源,要判断是否成功
POST:提交资源
PUT:更新资源
PATCH:局部更新资源,比如更新一条数据的一个字段。
在方法中使用参数
//获取路径中的值,(http://localhost/article/123)
@GetMapping("article/{id}")
public ModelAndView getArticle(@PathVariable("id") Integer id){
//..........
}
//获取路径中的参数(http://localhost/user/?username=www)
@RequestMapping("/addUser")
public String addUser(String username){
//..........
}
//通过Bean接收HTTP提交的对象
public String addUser(UserModel user)
//用注解@ModelAttribute获取参数
@RequestMapping(value="addUser", method=RequestMethod.POST)
public String addUser(@ModelAttribute("user") UserModel user)
//通过HttpServletRequest接收参数
@RequestMapping("/addUser")
public String addUser(HttpServletRequest request){
request.GETParameter("username");
}
//用@RequestParam绑定入参
@RequestParam(value="username", required=false)
//用@RequestBody接收JSON数据
@RequestMapping(value="addUser",method={RequestMethod.POST})
@ResponseBody
public void saveUser(@RequestBody List<User> users){
}
//上传文件MultipartFile
public String singleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes){
}
//上传图片
@PostMapping("/upload")
@ResponseBody
public Map<String,Object> singleFileUpload(@RequestParam("upload") MultipartFile file,RedirectAttributes redirectAttributes){
}
响应式编程Webflux
与Spring MVC不同,WebFlux不需要Servlet API,完全异步无阻塞,并且通过Reactor项目实现Reactive Streams规范。
可以在有限资源的情况下提高系统吞吐量和伸缩性(不是提高性能)。这意味着在资源相同的情况下,WebFlux可以处理更多的请求(不是业务)。
WebFlux除支持RESTful Web服务之外,还可以用于提供动态HTML内容。