目录
SpringBoot介绍
定义
特点
SpringBoot全新的pom.xml
pom.xml
eclipse第一个SpringBoot Project
创建maven project
Update Maven
修改pom.xml
创建RunApp.java
创建HelloController.java
测试
IDEA第一个SpringBoot Project
创建SpringBoot project
配置maven
创建RunApp.java
创建HelloController.java
测试
扩展
执行过程
常见问题:8080端口冲突
SpringBoot介绍 定义
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。成为SpringBoot全家桶。
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
它产生整个项目目录,其实我们只需pom.xml文件,覆盖本地maven工程的pom.xml文件。
注:可以使用idea直接创建springboot项目,其本质也是去调用上面的网站,只不过在本地访问外网https://start.spring.io。
修改pom.xml后,把项目进行maven-update *** 作,下载依赖的jar包。
eclipse第一个SpringBoot Project 创建maven project4.0.0 cn.tedu jk0.0.1-SNAPSHOT jk Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent2.4.2 1.8 org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-testtest org.springframework.boot spring-boot-maven-plugin
默认jdk1.5,早已经过气,改成jdk1.8
修改pom.xml
添加SpringBoot的依赖包
创建RunApp.java4.0.0 cn.tedu jkboot0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-parent2.4.2 1.8 org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-testtest org.springframework.boot spring-boot-maven-plugin
SpringBoot使用了全新的运行方式,两句话,直接执行main方法,默认启动tomcat中间件,端口为8080。
注意:类必须放在其他类的父级目录,它底层使用了包扫描机制,扫描的要求只扫描本类所在的目录极其子目录。
package cn.tedu.jk; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication //标识为springboot项目 public class RunApp { public static void main(String[] args) { //全新的启动方式,执行run方法会自动启动集成的tomcat中间件 SpringApplication.run(RunApp.class, args); } }创建HelloController.java
目前市场主流已经采用注解方式进行开发
package cn.tedu.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController//接受浏览器的请求 并返回json数据 public class HelloController { // @RequestMapping("hi")//只匹配一个路径 @RequestMapping({"hi","hello/hi"})//匹配两种路径/hi或者/hello/hi public String hi() { return "hi springboot!"; } }
启动Tomcat WebServer
ApacheTomcat是一个非常著名的web中间件,于之前学习的技术的不同在于它提供了web程序的容器环境,专门用于网站服务。
SpringBoot默认集成了tomcat中间件,会自动把项目打包jar发布到tomcat,这样我们就形成了自己的网站。但这个网站只能局域网访问,如果外网(广域网),自己购买一个网站,部署上去即可。
注意:不用服务时,关闭tomcat服务
测试http://localhost:8080/hello/hi # 某个web服务的根请求 http://localhost:8080/hi # /hi的某个具体请求
url解析:
- localhost代表本机,等价于ip:127.0.0.1
- 8080代表本机的服务,tomcat默认端口8080
- /hi等请求地址在一个web服务中请求具有唯一性(多个就没法区分了)
创建RunApp.java
package cn.tedu.cotroller; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Controller; @SpringBootApplication @Controller public class RunApp { public static void main(String[] args) { SpringApplication.run(RunApp.class, args); } }创建HelloController.java
package cn.tedu.cotroller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController//接受浏览器的请求 并返回json数据 public class HelloController { // @RequestMapping({"hi","hello/hi"})//匹配两种路径/hi或者/hello/hi @RequestMapping("hi")//只匹配一个路径 public String hi() { return "hi springboot!"; } }测试 扩展 执行过程
url** 的解析执行过程:**
浏览器输入的url,就会被解析后传入web中间件(/hi),web中间件再会进一步的解析,找到对应的Controller的某个注解里对应的url @RequestMapping({"/","/hi"}) ,从而就找到HelloController的hi()方法。最终利用反射执行这个类的方法(将来这个方法中就用来编写实现业务逻辑代码)。因为使用了@RestController,返回的String字符串对象底层会使用jackson工具类转换java对象为json字符串,返回给浏览器,浏览器将字符串回显(展示)在页面上。
Tomcat服务不会自动关闭,需要手动关闭,如不关闭,下次启动就会报下面错误:
port 8080 was already in use. 端口8080已经被占用。关闭服务,重新启动即可。
仍未解决的话,以下三种方式任选一个来测试.
1,需要执行DOS命令处理:
C:Userslpx>netstat –ano --查看所有端口号,找到8080端口对应的PID号 C:Userslpx>taskkill -pid 688 –f --杀死688进程号
2,可能是因为电脑里安装过Oracle数据库:
要找到Oracle的服务OracleXETNSListener,停掉.
3,直接使用yml方式配置修改端口号:
在src/main/resources下添加application.yml文件,内容如下:
server: port: 8090
清除项目缓存,再次重启服务,测试即可: http://localhost:8090/hello/hi
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)