一,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,概述
1.主要的职责:接受浏览器发来的请求,给浏览器发送响应的数据
2.遵循了MVC的设计模式:好处是可以把代码松耦合
3.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的启动类