本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
老实说,web 项目和非 web 项目,没什么大的区别。无非是 src/main/resources 下放不放 web 页面,pom.xml 中是否引入 spring-boot-starter-web 模块的问题。
在上一篇文章当中,我们还没有具体的介绍 spring-boot-starter-web ,因此本文我们一并来讲了。
SpringBoot 创建 web 项目的第一步,就是需要引入 spring-boot-starter-web 模块,用来支撑 web 的交互。
pom.xml 中添加支持 web 的模块:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 业余草:www.xttblog.com --> </dependency>
也有人看到,网上的一些项目中引入了 spring-boot-starter-test 。那么 spring-boot-starter-test 模块有什么用呢?其实看名字我们就应该清楚。
- spring-boot-starter :核心模块,包括自动配置支持、日志和YAML;
- spring-boot-starter-test :测试模块,包括JUnit、Hamcrest、Mockito。
编写第一个 Controller 实现 HelloWorld。
@RestController public class HelloWorldController { @RequestMapping("/xttblog") public String index() { return "Hello World"; } }
@RestController 的意思就是 controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了!SpringBoot 就是这么简单,这么任性。
然后启动 SpringBoot 项目(运行 @SpringBootApplication 注解类的 main方法)。http://localhost:8080/xttblog 就看到返回了 HelloWorld!
到现在为止,我们还没有跳转到对应的 web 页面。下面我们继续让 Controller 跳转到对应的 web 页面。
Spring Boot默认的提供的静态文件配置路径位于classpath下,目录名称需要符合以下规定:
- /static
- /public
- /resources
- /META-INF/resources
Spring Boot默认提供了多种模板引擎的支持,如:Thymeleaf、Velocity、FreeMarker等。尽量不要在Spring Boot中使用JSP,否则很多特性无法使用,也会破坏 SringBoot 的初衷。在Spring Boot中默认的模板引擎路径是src/main/resources/templates,当然我们也可以修改这个默认路径。
以上就是 SpringBoot 的 web 目录结构。
细心的朋友发现,我们上面访问 xttblog 的图片中没有贴出地址。为什么呢?因为贴出地址,你会发现,Springboot 默认的访问不需要项目名字了,我想加上项目名字访问,该怎么办?
答案是在 src/main/resources 下新建 application.properties 文件,里面加入下面的配置即可。
server.port=8090 spring.application.name=test server.context-path=/xttblog
想要自学的也可以到 https://github.com/spring-projects/spring-boot 上查看官方文档进行自学!
最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » 使用 SpringBoot 创建 web 项目