Web开发前提
使用web开发之前需要导入web开发依赖模块的依赖spring-boot-starter-web
相信spring框架的使用者几乎都会使用Spring MVC来开发web项目,为了帮助开发者简化快速搭建过程并开发web项目,SpringBoot提供了spring-boot-starter-web自动配置依赖模块
springboot项目的目录结构
src
main
java
com.example.demo
controller //控制器
service //业务层
entity //实体类
DemoApplication.java //启动类
resource
static //存放静态资源,如css,js,img
templates //存放html页面
application.properties //springboot的配置文件
test
可以通过添加以下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这样就可以直接执行web项目了,直接运行项目App的main方法就可以直接启动一个使用了嵌入式Tomcat服务器的web应用。但是在没有提供任何服务web请求的Controller时,访问任何路径都会返回一个SpringBoot默认提供的错误请求页面,如下:
向页面返回一个语句
比如我们想要在页面显示一个Hello SpringBoot的语句要怎么做呢?很简单,可以在上面的controller包中新建一个类,代码如下:
@RestController
public class HelloController{
@RequestMapping("/hello")
public String hello(){
return "Hello SpringBoot";
}
}
重新启动一下App类的main方法并在浏览器输入localhost:8080/hello,将正常显示我们在controller返回的信息,到这里一个简单的web项目就完成了
Spring MVC框架层面的约定
spring-boot-starter-web依赖模块默认自动配置了一些springmvc的必要组件
- 如ViewResolver自动注册到Spring容器中
- 如Converter和Formatter等bean自动注册到Spring容器中
- 如对web请求的支持和相应的类型转换的HttpMessageConverter自动注册到Spring容器中
- 如将MessageCodesResolver自动注册到Spring容器
假如你在开发中不想使用默认的嵌入式Tomcat,可以引入jetty作为第二个方案
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
或者也可以这样,用undertow(Undertow是一个Java开发的灵活的高性能Web服务器,提供包括阻塞和基于NIO的非阻塞机制。Undertow是红帽公司的开源产品,是Wildfly默认的Web服务器。SpringBoot2中可以将Web服务器切换到Undertow来提高应用性能。)替代
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
端口也是可以自己修改的,默认的端口是8080,如果不想使用这个,可以在application.properties中修改,如下:
server.port = 8081
application.yaml修改如下:
server:
port: 8081