springboot静态网页放哪里_STEP4.1 第一个SpringBoot项目
在上一节STEP3.2 服务器对于HTTP请求的处理流程中,我们学会了后端服务相关的理论知识。
接下来,我们就要落实到代码层面。
没有需求何来的代码开发?正所谓需求(DDL)是第一生产力,为了让我们在学习过程中不要冒出“学这个有什么用?”的奇怪想法,我们先来拟订一个需求,然后根据这个需求开展我们相关的学习,以及最后的代码开发。
我们假设我们的老板有如下三个需求:
为了这三个需求,我们需要以怎样的顺序,开展哪些内容的学习呢?
最后,我们还会利用Spring的特性(SpringBoot内置Spring)来优化一下我们的项目:
- 理解Spring IOC特性()
- 使用我们的IOC特性来为login-demo做代码优化()
那么接下来,就开始我们的第一步吧!
在这一节中,我们要用代码来实践最简单的后台处理。
其实也就是我们学任何语言or框架都首先会有的 Hello World!
一、新建SpringBoot项目
1.新建项目,选择Spring Initializr
2.设置项目基本信息
3.勾选依赖界面。我们勾选Web→Spring Web。(依赖是什么?我们到4.2节再说)
4.指定我们的项目名和项目路径
5.此时可以看到idea为我们创建的项目结构
简单说一说我们SpringBoot的项目结构,如图:
红色框:java文件夹
在这个文件夹中,主要写我们的业务代码。包括controller、service、dao,还有各种工具类等等,以及我们的程序主入口:xxxApplication。
蓝色框:resources文件夹
在这个文件夹中,有我们的全局配置文件application.properties,一般我们也会放一些其他的配置文件,比如mapper.xml(暂时不用着急在意它是什么)等等。如果是前后端不分离项目,在resources文件夹中还会放一些静态页面资源(.html等)。
绿色框:test文件夹
在这个文件夹中,主要写我们的软件测试代码。这个文件夹基本上不在我们专栏研究的范围内。
橙色框:pom.xml
这是我们管理项目依赖的文件夹,具体解释请看4.2节。在这一节中我们并不会用到它。
二、修改application.properties配置文件
首先,application.properties配置文件是什么?
这是我们SpringBoot项目的默认配置文件,在这个文件里可以设置我们的服务启动端口、数据库连接信息(连到哪个数据库)、资源文件路径(比如mybatis的xml路径)、编码、时区等等等等,很多适用于整个项目的配置都会在这里写。
不要想得太复杂,我们从本质的角度来思考一下:
.properties其实也就是一种文件格式,完全可以用我们的txt文本文档或者.xlsx表格文档等等来替代。然后我们的程序读取这个文档,比如读取这个文档里的数据库配置信息,那么我们的程序也就知道应该去访问哪个数据库。
当然,我们也完全可以丢弃配置文件,把数据库配置等等信息直接写到代码里。但这就产生了一个硬编码的问题,当我们要修改配置的时候就要回到代码去修改,非常不便。
不仅是SpringBoot,各种流行的框架都会考虑这一点,把全局配置信息分离出来,放到一个或几个单独文件里。
application.properties就是这样的文件。
但是一般应用场景中,我们会用.yml来替代.properties文件。简单举个例子讲一下.properties和.yml的区别:
对于同样的数据库配置:
.properties的配置方式:
# 数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver.yml的配置方式:
# 数据源配置 spring:datasource:url: jdbc:mysql://localhost:3306/testusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver.yml文件采用缩进的方式,解决了.properties需要反复写前缀的麻烦之处。
具体用.yml还是.properties来配置全凭个人喜好,笔者在这里会使用.yml来讲解~
然后,现在先来改一下配置文件后缀:
在application.properties上右键,Refactor→Rename
在application.yml中输入以下内容,为我们的Hello World项目设置一下服务启动端口(如果不设置的话,默认也是8080):
server:port: 8080注意:port后面的冒号后面要有空格。不然配置会失效。
正确的写法:
错误的写法:
我们可以看到,如果冒号后面没有空格,port会变黑色。
三、构建项目结构
按照上篇的内容(STEP3.2 服务器对于HTTP请求的处理流程)我们应该有Controller、Service、Dao的分层,为项目添加结构如下:
注:保持良好习惯,包名小写
第一个SpringBoot程序只是写helloworld,所以service和dao层暂时用不到。但是保持良好习惯,文件夹可以先建在那里。
四、写一个HelloWorld服务
在controller包中新建一个类MyController.java,写入以下代码:
import涉及到的两个关键注解,释义如下:
(1)@RestController
我们查看一下RestController的定义(Ctrl+鼠标左键点进@RestController可以看到)
@Target@RestController是@ResponseBody和@Controller的集合(一个注解包含了两个注解,同时具有两个注解的功能)。
@Controller
@Controller方法可以修饰类,指定该类是一个控制器类。这意味着该类下的方法在返回时,会自动通过视图解析器解析(如果有解析器的话),返回页面资源。(参考我们的springboot-helloworld项目的myController2:springboot-helloworld项目)
@Controller是前后端不分离的解决方案(页面通过后台来返回),不属于我们的重点内容。
@ResponseBody
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。本质上就是把返回页面资源的控制器转变成返回数据(字符串、浮点数、json对象等等)的控制器。
(2)@GetMapping
我们查看一下@GetMapping的定义:
@Target也就是说,如下这两种写法是等价的:
@GetMapping@RequestMapping那么看到下面这个@RequestMappling的写法也就很好理解了。
@GetMapping也就是指定请求方式为GET方式,里面传的参数也就是value值,代表请求的URL。
换言之,用户通过"/hello"这个url发送一个GET请求,可以进入@GetMapping("/hello")修饰的方法public String hello()里,执行里面的业务逻辑并返回。
最后运行我们的服务(在入口类SpringbootHelloworldApplication上右键运行),控制台会显示如下字样:
会首先显示一个Spring的大图标,在倒数第二行会显示服务运行在8080端口上(支持http协议访问)
打开浏览器输入localhost:8080/hello可以看到如下界面:
至此,最简易的服务就算是搭建完成了~完结撒花~
我们的helloworld项目的地址:
springboot-helloworld
总结
以上是生活随笔为你收集整理的springboot静态网页放哪里_STEP4.1 第一个SpringBoot项目的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: http中的请求头各部分都是什么意思_3
- 下一篇: springboot 搭建分布式_爱了!