美文网首页
入门 Spring Boot

入门 Spring Boot

作者: 每天多一点 | 来源:发表于2017-03-30 11:11 被阅读73次

概要

Spring Boot 不是 Spring, 而是一个新的项目. 这个项目提供了一完整的框架, 可以用来开发 web 程序. Spring Boot 的主旨在于提供一个良好的开发体验.

初始化

SPRING INITIALIZR 是一个提供起始程序包的网站. 我们如果想借助 Spring Boot 开发一个 web 程序, 可以先去这个网站上取得一个模板.

Maven 和 Gradle 两种工具都可以构建 Spring Boot 工程. 这里建议采用 Maven, 主要原因是Maven构建的Spring Boot 的文档资料要多于Gradle

从Spring Initializer 网站上下载下来的工程目录类似如下:

├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── milo
    │   │           └── DevicekeeperApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── milo
                    └── DevicekeeperApplicationTests.java

第一行代码

@RestController 和 @Controller

  • RestController的定义里面包含了 Controller 和 ResponseBody.
  • RestController的使用中, 包含了一个默认的 ResponseBody.

举个栗子, 原有的写法:

@Controller
class A

...

@ResponseBody
public pageA() 

使用了@RestController后,就不需要@ResponseBody了.

@RestController
class A

...

public pageA() 

接下来我们创建第一页面:


@SpringBootApplication
@EnableAutoConfiguration
@RestController
public class DevicekeeperApplication {

    @RequestMapping("/")
    public String devices() {
        return "Hello World";
    }

    public static void main(String[] args) {
...

@EnableAutoConfiguration 是提示以注解的方式配置应用. 虽然 Spring 支持 xml 的方式, 但是 Spring Boot 官方推荐使用 Class 来代替 Xml

在工程路径下, 输入

mvn spring-boot:run

接下来通过 localhost:8080 就可以看到 "Hello World" 了.

需要提前安装配置好 maven

打包

使用下面的命令, 可以将程序打到一个可执行的 jar 包中, 前提是

mvn package

前提是 pom.xml 中已经

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

页面

上面的例子中, 我们简单打印出了"Hello World"文字. 接下来我们尝试一个 UI 页面.
我们可以直接将"Hello World"替换成html代码

但是这样岂不是很笨? 一般来说, 都是用模板引擎来进行 UI 的页面的渲染.
Spring Boot 的模板引擎有很多, 整理我们采用官方推荐的Thymeleaf.

为了使用这个模板引擎, 我们需要稍稍修改一下我们的程序

@SpringBootApplication
@EnableAutoConfiguration
@Controller
public class DevicekeeperApplication {

    @RequestMapping("/")
    public String devices() {
        return "devices";
    }

我们替换了@RestController 为@Controller, 函数的返回值直接变成了一个字符串. 这个字符串代表模板的名字.
接下来我们在 src/main/resources/templates下, 添加一个名字是 "devices.html"的模板

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Title</title>
</head>
<body>
<h>Hi</h>
</body>
</html>

重新运行程序, 会看到 localhost:8080页面变成了"Hi".

这里需要注意的是 Thymeleaf 需要每个 html 标签都是闭合的. 所以虽然下面的写法在 html 中是对的, 但是"Thymeleaf"会报错.

<meta charset="utf-8">

需要改成:

<meta charset="utf-8"/>

调整样式

页面的样式当然是通过调整模板的 html 来实现了. 我们需要知道 SpringBoot 应用会有一个默认的静态资源路径, 用来存放页面使用的静态 css, js等文件.
我们可以通过如下的路径引用:

<link rel="stylesheet" href="/css/typo.css"/>

注意, 这里的"/css" 代表的是默认资源路径的根目录. 这个例子中, typo.css在工程中的位置如下:

─ resources
    ├── application.properties
    ├── static
    │   └── css
    │       └── typo.css

自动重启

开发的时候可能需要自己的server能够监视到代码的变化而自动运行服务. 配置插件的fork 为 true:

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <fork>true</fork>
  </configuration>
</plugin>

数据的增删改查

请参考这篇文章
使用Spring Data进行数据访问

上传文件

鉴权

制作Docker

Docker的制作, 可以参考这篇

相关文章

网友评论

      本文标题:入门 Spring Boot

      本文链接:https://www.haomeiwen.com/subject/wirbsttx.html