【SpringBoot系列01】初识SpringBoot

【SpringBoot系列01】初识SpringBoot

【SpringBoot系列02】SpringBoot之使用Thymeleaf视图模板

【SpringBoot系列03】SpringBoot之使用freemark视图模板

【SpringBoot系列04】SpringBoot之使用JPA完成简单的rest api

【SpringBoot系列05】SpringBoot之整合Mybatis

一、介绍

想必大家都一定用过spring框架,每次整合spring框架的时候总是会有无穷无尽的xml配置文件,第一次写配置文件的时候,大家还会抱着学习的心态认真读每一个配置,但是当我们每次在构建项目都要写同样的配置文件大家应该会觉得厌烦,尽管只是复制粘贴。那么现在你就不用担心了,使用springboot让你更简单的构建spring应用。

springboot让我们更加简单快速的构建spring应用,并且内置web容器(tomcat、jetty等)支持jar包的方式启动一个web应用。

SpringBoot主要优点:

* 1. 为所有Spring开发者更快的入门

* 2. 开箱即用,提供各种默认配置来简化项目配置

* 3. 内嵌式容器简化Web项目

* 4. 没有冗余代码生成和XML配置的要求

二、目标

本节主要目标是通过构建一个简单的SpringBoot项目,实现一个hello word接口。通过这样一个简单的例子让我们对springboot有一个了解。

三、实现

3.1、环境

* java8 及以上

* SpringBoot 2.0.4

3.2 构建项目

3.2.1 spring官网 SPRING INITIALIZR

1、访问 http://start.spring.io/

2、选择maven构建、使用java语法、并且SpringBoot版本为2.0.4

具体如图:

image.png

3、点击Generate Project 下载构建成功的项目压缩包

解压完成之后我们就可以通过IntelliJ IDEA开发工具导入到工程,

* 1. 菜单中选择File–>New–>Project from Existing Sources...

* 2. 选择解压后的项目文件夹,点击OK

* 3. 点击Import project from external model并选择Maven,点击Next到底为止。

* 4. 如果你的环境有多个版本的JDK,注意到选择Java SDK的时候请选择系统安装1.8版本

3.2.2 使用idea构建

1、打开idea选择new -> project -> SPRING INITIALIZR

idea构建

2、在ProjectSDK选择jdk8

3、点击next 输入gourpId artifactId 然后继续next 一直到完成就可以

image.png

其实大家看的出来,两种方式都是一样的,只不过用idea省去了我们手动下载介绍并且导入的步骤,稍显方便。

3.2.3、项目结构

image.png

关键目录解释

* 1、/src/main/java/ 存放项目所有源代码目录

* 2、/src/main/resources/ 存放项目所有资源文件以及配置文件目录

* 3、/src/test/ 存放测试代码目录

其中生成的Chapter1Application和Chapter1ApplicationTests类都可以直接运行来启动当前创建的项目。

3.3、添加web模块

打开pom.xml 添加spring-boot-starter-web 即可

<dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter</artifactId>

        </dependency>



        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>



        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

    </dependencies>

3.4、编写hello world服务

src/main/java目录下的chapter1包下新建一个HelloWorldController.java文件

@RestControlle

@RequestMapping("/hello")

public class HelloWorldController {



    @GetMapping

    public String hello() {

        return "hello world";

    }

}

其中

* @RequestController是一个复合注解 ,大家按住ctrl看源码会发现 @RequestController = @Controller +@ResponseBody 那么它的作用就不言而喻了,代表当前类是一个控制器并且返回所有的方法将会返回json数据

3.5 、启动

双击打开Chapter1Application文件启动。

image.png

从图中可以看出日志打印启动tomcat服务的端口是8080 ,代表启动成功。

打开浏览器访问http://localhost:8080/hello

image.png

那么有时候我们的8080端口被占用了,那么就会启动失败,提示端口被占用,如何改变springboot启动的默认端口呢?

打开application.yml 这时候大家就会问了 不是application.properties吗 其实yml文件也是配置文件的一种,它的书写简洁,我比较喜欢。

yml写法

server:

  port: 9090

properties写法

server.port=9090

上面的代码就是设置web服务启动的端口了。

四、总结

通过这次学习,我们了解了springboot如何启动一个web服务,并且如何更改web服务启动的默认端口。

最后配套教程的代码全部在这里

github https://github.com/YuKongEr/SpringBoot-Study

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏全栈之路

vue.js安装心得

npm是nodejs的包管理器,所以之前只想找npm,而不想下载nodejs,最后闹了笑话。

1392
来自专栏菩提树下的杨过

利用Spring的@Async异步处理改善web应用中耗时操作的用户体验

Web应用中,有时会遇到一些耗时很长的操作(比如:在后台生成100张报表再呈现,或 从ftp下载若干文件,综合处理后再返回给页面下载),用户在网页上点完按钮后,...

2427
来自专栏一只程序汪的自我修养

VS快捷键

2475
来自专栏Danny的专栏

学习中遇到的小技巧 二 (陆续更新……)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1124
来自专栏大魏分享(微信公众号:david-share)

富Web应用的架构与转化方法:Web应用系列第二篇

版权说明:本文书写过程中参照了红帽的技术文档;本系列文章中的部分测试代码为红帽公司版权所有,因此不能提供源码文件。

1032
来自专栏软件测试经验与教训

Fiddler用法整理

读书与实践是获取知识的主要渠道,学习的权力只掌握在每个人自己手中,让学习成为一种生活的习惯,这比任何名牌大学的校徽重要得多!

1321
来自专栏静默虚空的博客

图解使用VS的安装项目打包程序

背景 这段时间一直在做客户端程序的打包程序,遇到各种坑。因为以前没有任何这方面的经验,历经各种折腾,费尽九牛二虎之力总算是完成了。 虽然没有太多技术含量,但是因...

2275
来自专栏后端云

vm被systemd删除

发现计算节点重启后,所有的该节点上的vm被删除了,查看vm对应的qemu日志,qemu-kvm: terminating on signal 15 from p...

1974
来自专栏FreeBuf

EKFiddle:基于Fiddler研究恶意流量的框架

EKFiddle是一个基于Fiddler web debugger的,用于研究漏洞利用套件、恶意软件和恶意流量的框架。

1080
来自专栏农夫安全

Bwapp漏洞平台答案全解-A3(第一篇)

A3 - Cross-Site Scripting (XSS) *****************跨站脚本****************** 跨站的终极思路...

5707

扫码关注云+社区