springboot静态网页放哪里_STEP4.1 第一个SpringBoot项目

在上一节STEP3.2 服务器对于HTTP请求的处理流程中,我们学会了后端服务相关的理论知识。

接下来,我们就要落实到代码层面。

没有需求何来的代码开发?正所谓需求(DDL)是第一生产力,为了让我们在学习过程中不要冒出“学这个有什么用?”的奇怪想法,我们先来拟订一个需求,然后根据这个需求开展我们相关的学习,以及最后的代码开发。

我们假设我们的老板有如下三个需求:

  1. 用户可以通过账号密码登录
  2. 已经登录的用户可以查看全用户名列表(没登录就不能看)
  3. 用户可以注销

为了这三个需求,我们需要以怎样的顺序,开展哪些内容的学习呢?

  1. 学会如何搭建、配置、启动、访问服务(本节内容)
  2. 为了正常使用我们需要的第三方包,我们需要理解SpringBoot是如何管理依赖的(STEP4.2 认识pom.xml)
  3. 理解会话的概念,学会如何保持登录状态,并进行相应代码实践()
  4. 写代码搭建项目login-demo,逐步完成需求()

最后,我们还会利用Spring的特性(SpringBoot内置Spring)来优化一下我们的项目:

  • 理解Spring IOC特性()
  • 使用我们的IOC特性来为login-demo做代码优化()

那么接下来,就开始我们的第一步吧!


在这一节中,我们要用代码来实践最简单的后台处理。

103d67c414bef1a7ee401a451c3423e8.png

其实也就是我们学任何语言or框架都首先会有的 Hello World!


一、新建SpringBoot项目

1.新建项目,选择Spring Initializr

507bae5735ee5f4a3739948d60f58562.png

2.设置项目基本信息

7bc9d7745f516ca69dd3259dfc0a8158.png

3.勾选依赖界面。我们勾选Web→Spring Web。(依赖是什么?我们到4.2节再说)

741bd8f26e94d8f80e4408232766ea81.png

4.指定我们的项目名和项目路径

1b46c817644c276ebd9ed1f47471e161.png

5.此时可以看到idea为我们创建的项目结构

2839ddc52e141876d554bdcdee79a9e0.png

简单说一说我们SpringBoot的项目结构,如图:

35cb511fb8f68758d44379e12562b0b3.png

红色框: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/test
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

.yml文件采用缩进的方式,解决了.properties需要反复写前缀的麻烦之处。

具体用.yml还是.properties来配置全凭个人喜好,笔者在这里会使用.yml来讲解~

然后,现在先来改一下配置文件后缀:

在application.properties上右键,Refactor→Rename

f17d410edc462915f9d430bffed2f2ee.png

66b80dc0fc5078b1a1e9dd29e3387891.png

在application.yml中输入以下内容,为我们的Hello World项目设置一下服务启动端口(如果不设置的话,默认也是8080):

server:
  port: 8080

注意:port后面的冒号后面要有空格。不然配置会失效。

正确的写法:

3746bf3c4604d4f0b8de7fd4af36d2ee.png

错误的写法:

34f941ae153650defd8fc62ae278ac16.png

我们可以看到,如果冒号后面没有空格,port会变黑色。


三、构建项目结构

按照上篇的内容(STEP3.2 服务器对于HTTP请求的处理流程)我们应该有Controller、Service、Dao的分层,为项目添加结构如下:

2e1fccf132e62a1482713e8dd83c1b48.png

注:保持良好习惯,包名小写

第一个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上右键运行),控制台会显示如下字样:

1d11ce89f7788e7337ea5cff978442fc.png

会首先显示一个Spring的大图标,在倒数第二行会显示服务运行在8080端口上(支持http协议访问)

打开浏览器输入localhost:8080/hello可以看到如下界面:

12d1fa0b22b281b0a4a2ae3d1064cf0b.png

至此,最简易的服务就算是搭建完成了~完结撒花~

我们的helloworld项目的地址:

springboot-helloworld

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值