创建springboot
作用:
这个maven项目; 并且和spring框架进行无缝衔接(与spring框架进行连接直接使用)
在项目上new ---->moudle--->选择spring initializr---->nextgroupid(入下图进行配置修改) ;
如果出现报错先点击刷新;如果还不行在点击maven 在点击clean 然后在install即可
此处只需勾选即可下载jar包且 会自动在pom.xml文件中写坐标代码;
社区办使用springboot中没有spring initalizr; 那么需要先下载spring assistant在点击insatll
使用springboot的常见问题:8080端口冲突
Tomcat服务不会自动关闭,需要手动关闭,如不关闭,下次启动就会报下面错误:
port 8080 was already in use. 端口8080已经被占用。关闭服务,重新启动即可。
1),可能是因为电脑里安装过Oracle数据库:
第一步
第二步
第三步
第四步
第五步:先点击停止
第六步:在点击属性
第七步
即可关闭Oracle
如果还没有解决:使用dos命令进行查询看一下哪个程序没有关闭
C:\Users\lpx>netstat –ano --查看所有端口号,找到8080端口对应的PID号
C:\Users\lpx>taskkill -pid 688 –f --杀死688进程号
–2springboot的用法
–1,创建SpringBoot工程:File-New-Project-选择Spring Init…-next-输入groupId、项目id、选成jdk8-next-选择SpringWeb-ok
–2,配置Maven:File-Settings-选择Build…-Maven-修改三处(解压的位置、settings.xml位置-本地仓库位置)-ok
–3,找到自动生成的一个类,直接运行 ( 启动服务器 )
浏览器如何访问后台资源
先创建启动类;器主要的目的可就是启动服务器
package cn.tedu.springboot01;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//这是springboot自动写的代码
@SpringBootApplication //
public class Springboot01Application {
public static void main(String[] args) {
SpringApplication.run(Springboot01Application.class, args);
}
}
写被访问的内容 : 这时后端的内容就会被访问到(但此时的内容不会再网页中展示,因为此时的方法的反悔值类型为void(空))要想中安网页中有内容. 那么此时 ;方法的返回值类型不能为空,且使用return进行返回;
package cn.tedu.springboot01;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController//这个类可以被浏览器 访问返回的值json串
public class HelloBoot {
@RequestMapping("hi")//这个方法被访问
public void hi(){
System.out.println("嗨 springboot~~~~~ 访问成功");
}
}
springmvc的作用: 向浏览器法来的请求,给相应浏览器发来的请求
springmvc的工作原理
具体的实现过程
客户端发送请求-> 前端控制器 DispatcherServlet 接受客户端请求 -> 找到处理器映射 HandlerMapping 解析请求对应的 Handler-> HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求,并处理相应的业务逻辑 -> 处理器返回一个模型视图 ModelAndView -> 视图解析器进行解析 -> 返回一个视图对象->前端控制器 DispatcherServlet 渲染数据(Moder)->将得到视图对象返回给用户.
helloboot的案例的 实现具体的代码在上面的代码块中
–前端控制器DispatcherServlet:: 把请求进行分发,找到对应的类里的方法开始干活
–处理器映射器HandlerMapping::根据url来找到对应的类并找到对应的方法
http://localhost:8080/hello/hi 即将访问 HelloBoot类里的 hi()
–处理器适配器HandlerAdaptor::拿到要执行的类名和方法名,开始干活
–视图解析器ViewResolver::解析要在浏览器上展示的数据
–视图渲染:::真正的把数据在浏览器上展示
mvc模型中的M层
package cn.tedu;
//相当于mvc模型中的m层 用来封装数据
public class Car {
private int id;
private String name;
private String type;
private String color;
private int price ;
/*get/set方法因为使用private进行封装 所以属性只能在本来中进行调用,
想要在其他的类里面进行调用就要使用get/set方法*/
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 int getPrice() { return price; }
public void setPrice(int price) { this.price = price; }
//重写tostring方法,目的:一个类默认继承object 所以想要查看父类里的具体的值就要使用tostring方法
@Override
public String toString() {
return "Car{" +
"id=" + id +
", name='" + name + '\'' +
", type='" + type + '\'' +
", color='" + color + '\'' +
", price=" + price +
'}';
}
}
mvc模型中的c层 : 想要返回数据就要数据就要使用return
package cn.tedu;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.sound.midi.Soundbank;
//接受请求+做出相应(并把数据返回变成json串)
要想在网页中返回数据就要使用return
@RestController
@RequestMapping("car")//跟url进行匹配
public class Controller {
//此时数据不会返回给页面 , 在打印台进行输出数据
@RequestMapping("get")
public void get(){
System.out.println("成功");
}
//将数据返回页面
@RequestMapping("put")
public String put(){
return "德生科技和";
}
@RequestMapping("save")
public Car save(){
Car car=new Car();
car.setColor("和代课教师");
car.setName("几点睡");
car.setPrice(231);
car.setType("哈市");
car.setId(456);
return car;
}
}