一灰灰blog 一灰灰blog
首页
  • InfluxDB
  • MongoDB
  • MySql
  • 基础系列
  • DB系列
  • 搜索系列
  • MQ系列
  • WEB系列
  • 中间件
  • 运维
  • SpringSecurity
  • SpringCloud
  • QuickAlarm
  • QuickCrawer
  • QuickFix
  • QuickMedia
  • QuickSpi
  • QuickTask
  • 高可用
  • 分类
  • 标签
  • 归档
  • 收藏
  • 关于
GitHub (opens new window)

一灰灰blog

资深搬运工
首页
  • InfluxDB
  • MongoDB
  • MySql
  • 基础系列
  • DB系列
  • 搜索系列
  • MQ系列
  • WEB系列
  • 中间件
  • 运维
  • SpringSecurity
  • SpringCloud
  • QuickAlarm
  • QuickCrawer
  • QuickFix
  • QuickMedia
  • QuickSpi
  • QuickTask
  • 高可用
  • 分类
  • 标签
  • 归档
  • 收藏
  • 关于
GitHub (opens new window)
  • 基础系列

  • DB系列

  • 搜索系列

  • MQ系列

  • WEB系列

    • Request

    • Response

    • RestTemplate

    • WebClient

    • WebFlux

    • WebSocket

    • Web三剑客

    • 实例

      • 【WEB系列】Spring MVC之基于xml配置的web应用构建
      • 【WEB系列】Spring MVC之基于java config无xml配置的web应用构建
      • 【WEB系列】一个web demo应用构建全过程
        • II. 其他
          • - 系列博文
          • 0. 项目
          • 1. 一灰灰Blog
          • 2. 声明
          • 3. 扫描关注
      • 【WEB系列】实现后端的接口版本支持(应用篇)
      • 【WEB系列】徒手撸一个扫码登录示例工程(应用篇)
      • 【WEB系列】一步步实现一个面向接口的网络访问实例(应用篇)
      • 【WEB系列】最小成本实现REST服务扩展(应用篇)
      • 【WEB系列】从0到1实现自定义web参数映射器
    • 其他

  • 中间件

  • 运维

  • SpringSecurity

  • SpringCloud

  • Spring系列
  • WEB系列
  • 实例
一灰灰
2019-03-19

【WEB系列】一个web demo应用构建全过程

前面分别通过Spring结合web.xml和java config的方式构建web应用,最终实现效果差不多,但从结构上来看java config的方式明显更优雅一点;而本篇将介绍的SpringBoot方式,则更能让我们感受到便捷

本篇博文,建议与前面两篇对比阅读,效果更佳

  • 190316-Spring MVC之基于xml配置的web应用构建 (opens new window)
  • 190317-Spring MVC之基于java config无xml配置的web应用构建 (opens new window)

II. web构建

# 1. 项目依赖

与前面一样,搭建SpringBoot web工程,需要引入对应的依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.0.M1</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

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

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

开始接触SpringBoot,不熟悉应该引入什么依赖的提前下,一个简单方法就是通过官网来创建项目

  • 进入官网https://start.spring.io/ (opens new window)
  • 选择版本,输入group, artifact,确定即可

对于SpringBoot web应用而言,我们需要引入的包就是

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
1
2
3
4

# 2. 配置

SpringBoot抛弃了xml的配置方式,也是基于java config这一套玩耍的,但是它更加的简单

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }
}
1
2
3
4
5
6

在我们的启动类入口上,添加上注解 @SpringBootApplication即可,这样一个SpringBoot应用就完成了

不需要其他的任何配置,默认开启的http端口是8080,如需修改,可以通过 application.properties 或者 application.yml 文件来重新指定

# 3. 实例代码

然后就可以写我们的Controller代码了

@RestController
public class HelloRest {
    @Autowired
    private PrintServer printServer;

    @GetMapping(path = "hello")
    public String sayHello(HttpServletRequest request) {
        printServer.print();
        return "hello, " + request.getParameter("name");
    }
    
    @GetMapping({"/", ""})
    public String index() {
        return UUID.randomUUID().toString();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

一个普通的bean

@Service
public class PrintServer {
    public void print() {
        System.out.println(System.currentTimeMillis());
    }
}
1
2
3
4
5
6

# 4. 测试

测试也比较简单,直接运行前面的main方法即可,如下图

show.gif

# 5. 小结

使用SpringBoot搭建一个基础的web应用,由于过于简单,也没有什么特别多值得说到地方,这里对比前面两篇,会发现优势特别特别的明显,极大的减少了入门门槛,整个项目更加轻量简洁,个人感觉,今后基于SpringBoot搭建后端应用的趋势,会取代原来的存Spring的方式

# II. 其他

# - 系列博文

web系列:

  • Spring Web系列博文汇总 (opens new window)

mvc应用搭建篇:

  • 190316-Spring MVC之基于xml配置的web应用构建 (opens new window)
  • 190317-Spring MVC之基于java config无xml配置的web应用构建 (opens new window)
  • 190319-SpringBoot高级篇WEB之demo应用构建 (opens new window)

# 0. 项目

  • 工程:https://github.com/liuyueyi/spring-boot-demo (opens new window)
  • 项目: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/201-web (opens new window)

# 1. 一灰灰Blog

  • 一灰灰Blog个人博客 https://blog.hhui.top (opens new window)
  • 一灰灰Blog-Spring专题博客 http://spring.hhui.top (opens new window)

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

# 2. 声明

尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

  • 微博地址: 小灰灰Blog (opens new window)
  • QQ: 一灰灰/3302797840

# 3. 扫描关注

一灰灰blog

QrCode

知识星球

goals

编辑 (opens new window)
#Web
上次更新: 2021/10/15, 19:56:22
【WEB系列】Spring MVC之基于java config无xml配置的web应用构建
【WEB系列】实现后端的接口版本支持(应用篇)

← 【WEB系列】Spring MVC之基于java config无xml配置的web应用构建 【WEB系列】实现后端的接口版本支持(应用篇)→

最近更新
01
【基础系列】基于maven多环境配置
04-25
02
【WEB系列】内嵌Tomcat配置Accesslog日志文件生成位置源码探索
04-24
03
【搜索系列】ES查询常用实例演示
04-18
更多文章>
Theme by Vdoing | Copyright © 2017-2022 一灰灰Blog
MIT License | 鄂ICP备18017282号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×