一,SpringBoot
?1,概述
用来整合maven项目,可以和Spring框架无缝衔接。
?2,用法
?1,创建SpringBoot工程:File-New-Project-选择Spring Init…-next-输入groupId、项目id、选成jdk8-next-选择SpringWeb-ok
?2,配置Maven:File-Settings-选择Build…-Maven-修改三处(解压的位置、settings.xml位置-本地仓库位置)-ok
?3,找到自动生成的一个类,直接运行 ( 启动服务器 )
?4,创建类,让浏览器访问
?5,测试
启动服务器
打开浏览器访问指定的地址::http://localhost:8080/hi
二,SpringMVC
?1,概述
主要的职责:接受浏览器发来的请求,给浏览器发送响应的数据
遵循了MVC的设计模式:好处是可以把代码松耦合
MVC的全称:M是Model模型,用来封装数据
V是View视图,用来展示数据
C是Controller控制器,用来写业务代码
?2,原理
当浏览器发起请求,就会访问服务器----前端控制器DispatcherServlet—处理器映射器HandlerMapping—处理器适配器
HandlerAdaptor—视图解析器ViewResolver—视图渲染—响应数据。
?前端控制器DispatcherServlet
:: 把请求进行分发,找到对应的类里的方法开始干活
?处理器映射器HandlerMapping
::根据url来找到对应的类并找到对应的方法
http://localhost:8080/hello/hi 即将访问 HelloBoot类里的 hi()
?处理器适配器HandlerAdaptor
::拿到要执行的类名和方法名,开始干活
?视图解析器ViewResolver
::解析要在浏览器上展示的数据
?视图渲染:::真正的把数据在浏览器上展示
?3,入门案例
需求:访问url地址,服务器返回汽车的相关数据
?1,创建Maven的模块:选中工程-右键-New-Maven-next-输入module的名字-finish
?2,创建启动类RunApp
?3,创建汽车类
package cn.tedu; //充当MVC模式里的M层model:封装数据 public class Car{ //提供属性 + get/set/toString private int id; private String name; private String type; private String color; private double price; // get/set /toString public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } //如果没重写,就是用Object的toString()返回的是地址值。 //没重了,就是返回属性值。 @Override public String toString() { return "Car{" + "id=" + id + ", name='" + name + '\'' + ", type='" + type + '\'' + ", color='" + color + '\'' + ", price=" + price + '}'; } }
?4,创建类,接受浏览器的请求,并返回数据
package cn.tedu; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; //职责:接受请求+做出响应 @RestController //接受浏览器发来的请求 @RequestMapping("car")//规定了url的写法 public class CarController { //访问http://localhost:8080/car/find, //在浏览器展示了{"id":718,"name":"保时捷","type":"Cayman T","color":"红色","price":641000.0} @RequestMapping("find") public Car find(){ Car c = new Car(); c.setId(718); c.setName("保时捷"); c.setType("Cayman T"); c.setColor("红色"); c.setPrice(641000); return c;//把结果返回给了浏览器 } //访问http://localhost:8080/car/save ,在浏览器展示abc @RequestMapping("save") public String save(){ //接受请求,并返回数据 return "abc"; } //访问http://localhost:8080/car/get ,在控制台打印123 @RequestMapping("get")//规定了url的写法 public void get(){ System.out.println(123); } }
?5,测试
总结
SpringMVC的原理?DispatcherServlet->HandlerMapping->HandlerAdaptor->ViewResolver->View
SpringMVC里用的注解?@RestController 接受请求 + 负责响应 (把数据变成JSON串)
@RequestMapping 跟url匹配规定了url的写法
@RestController 只能出现在类上
@RequestMapping 可以出现在类上或方法上
SpringBoot的注解?@SpringBootApplication 用来作为springboot的启动类
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注自学编程网更多内容!
- 本文固定链接: https://zxbcw.cn/post/217249/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)