SpringBoot无废话入门01:最简SpringBoot应用
虽然本篇讲的是一个最简的SpringBoot应用,但是要说明的是:学习SpringBoot是有门槛的,这个门槛就是,
1:首先得有框架的基础,比如SSM;
2:MAVEN基础。
在学好上面两者的基础上,我们才能明白SpringBoot干了一件什么事情,以及它是怎么帮我们组织项目结构的。
我们假设你对于上面两者的知识都已经掌握,再开始对本文的学习。
1.创建web项目
然后一路next到finish。
等待Generating project in Batch mode完毕,最终生成的目录为:
2.配置pom
然后加入parent,spring-boot-starter-parent。
我们在学习使用MAVEN来创建SSM的时候,已经知道parent的大致作用,就是定义一些属性,这些属性包括项目所依赖的大三方jar包。那么在这里就应该大致知道了,spring-boot-starter-parent里面所定义的肯定也是一些类似的东西。比如定义好了所依赖的spring的version是多少等等。
spring-boot-starter-parent本身也是有版本的,在这里,我们使用的是2.1.3.RELEASE这个版本,
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
加入后,在idea中会自动帮我们到中央仓储中下载jar包。如果是第一次操作,内容则有点大(如下图达到了近600M),由此可见spring-boot-starter-parent的pom文件中会定义了多少依赖包,
除了spring-boot-starter-parent,由于当前项目是web项目,故让我们再加入一个spring-boot-starter-web的依赖,最终,看到的pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<name>testboot01</name>
<groupId>com.zuikc</groupId>
<artifactId>testboot01</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
在上面的pom中,细心的同学应该还能发现有一个spring-boot-maven-plugin的插件,一会我们在讲到项目启动的时候会说明这个插件。
3.测试代码
测试代码非常简单,让我们创建一个HelloApplication,如下,
package com.zuikc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication
@Configuration
@Controller
public class HelloApplication {
@RequestMapping("hello")
@ResponseBody
public String hello(){
return "hello zuikc.com!";
}
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
接下来对代码进行一个简单的说明。这是一个最精简的SpringBoot的项目,可以看到代码有若干注解,
@SpringBootApplication:是Spring Boot项目的核心注解,表明这是一个由springboot启动的项目;
@Configuration:表明这是一个配置Spring的配置类。@Configuration由spring3.0开始被支持;
@Controller:表明这是一个SpringMVC的Controller控制器;
@RequestMapping我们则已经很熟悉了,配置一个url地址,剩下的@ResponseBody则无需多说,各位都明白。
奇妙就在于main方法,这个HelloApplication带main方法,就说明它能作为一个应用程序自启动。
事实上也确实如此!
让我们直接对代码,run as application 就行!
能看到这样的输出,
这表明什么?
这表明我们执行main方法后,springboot为我们启动了一个web服务器,能够为我们提供web服务!
然后,localhost吧……
4.测试代码的maven启动方式
除了run as application,由于在pom文件中我们配置了spring-boot-maven-plugin,所以我们可以使用maven的启动方式,
紧接着启动命令,能看到:
再localhost一下,看是不是很成功呢!
5.SpringBoot的优点
想必至此,大家应该已经明白了SpringBoot的优点。它让我们执行application一样的来执行JavaWeb项目。并且,基础0配置,就让这个JavaWeb项目支持了Spring和SpringMVC,而往常,我们往往要进行若干细致的配置才行。
有经验的同学,应该也已经明白了这里面的窍门,同时也知道这算不上多玄幻的技术。但是就是这奇思妙想,却极大的提升了我们这些开发人员的效率。
感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。
SpringBoot无废话入门01:最简SpringBoot应用的更多相关文章
- SpringBoot无废话入门04:MyBatis整合
1.Parent引入及pom配置 首先,如果要支持mybatis,那么我们就应该引入mybatis的starter.同时,由于连接本身还需要用jdbc的connetor和连接池,所以一并需要引入这些依 ...
- SpringBoot无废话入门03:SpringMVC支持
1.默认配置 Springboot对于路径的默认位置为: spring.resources.static-locations=classpath:/META-INF/resources/,classp ...
- SpringBoot无废话入门02:SpringBoot启动分析
1.核心注解 在上文中,我们讲到了@SpringBootApplication是SpringBoot的核心注解. 可以很方便的在idea中下载源码来查看该注解的源码,如下: 可以看到,该注解本身又被其 ...
- SpringCloud无废话入门01:最简SpringCloud应用
1.创建Parent Parent很简单,创建一个空的maven项目,pom如下: <?xml version="1.0" encoding="UTF-8" ...
- SpringCloud无废话入门05:Spring Cloud Gateway路由、filter、熔断
1.什么是路由网关 截至目前为止的例子中,我们创建了一个service,叫做:HelloService,然后我们把它部署到了两台服务器(即提供了两个provider),然后我们又使用ribbon将其做 ...
- SpringCloud无废话入门04:Hystrix熔断器及监控
1.断路器(Circuit Breaker)模式 在上文中,我们人为停掉了一个provider,在实际的生产环境中,因为意外某个服务down掉,甚至某一层服务down掉也是会是有发生的.一旦发生这种情 ...
- SpringCloud无废话入门03:Feign声明式服务调用
1.Feign概述 在上一篇的HelloService这个类中,我们有这样一行代码: return restTemplate.getForObject("http://hello-servi ...
- SpringCloud无废话入门02:Ribbon负载均衡
1.白话负载均衡 在上一篇的介绍中,我们创建了两个一模一样的服务提供者:Provider1和Provider2,然后它们提供的服务也一模一样,都叫Hello-Service.为什么一样的服务我们要部署 ...
- 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)
[原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...
随机推荐
- google hacking
Google是一个强大的搜索引擎:而对于黑客而言,则可能是一款绝佳的黑客工具.正因为google的检索能力强大,黑客可以构造特殊的关键字,使用Google搜索互联网上的相关隐私信息.通过Google, ...
- 2018牛客网暑假ACM多校训练赛(第十场)F Rikka with Line Graph 最短路 Floyd
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-F.html 题目传送门 - https://www.n ...
- httpmodule MVCapplication
转自:http://www.cnblogs.com/fish-li/archive/2011/09/05/2168073.html http://www.cnblogs.com/yplong/p/55 ...
- 基于Docker的服务器搭建
-----------基于Docker的多种服务器搭建----------- 开发环境 本机上的虚拟机 Centos7.4 Docker1.13.1 Openssl1.1.1 1 Nginx 1.1 ...
- HDU 3415 Max Sum of Max-K-sub-sequence【单调队列】
<题目链接> 题目大意: 给你一段从1~N的圆形序列,要你求出这段圆形序列中长度不超过K的最大连续子序列之和是多少,并且输出这子序列的起点和终点. 解题分析: 既然是求连续子序列之和,我们 ...
- Effective前端1---chapter 2 用CSS画一个三角形
1.CSS画三角形的画法 第一步:三角形可以用border画出来,首先一个有四个border的div长这样: <div class="triangle"></di ...
- 对C#中的Close()和Dispose()的浅析
.net中的许多类都提供了Close()和Dispose()方法,一直以来我都以为它俩是一回事,是完全等价的,在任何地方,用其一即可. 有些类说Close比说Dispose更符合用户的理解(如关闭连接 ...
- linux 学习笔记 TAR包管理
>显示gong.tar 文件内容 #tar tf gong.tar ./epuinfo.txt ./smart/ ./smart/smartsuite-2.1-2.i386.rpm ./smar ...
- vue项目的搭建使用
环境变量的安装 参考 环境变量详解 第一次搭建参考 参考 简单初始项目搭建 配置好环境变量的项目的搭建 新建一个new proproject, 查看工作目录vue是否存在 使用查看指令 v ...
- 码云,git使用 教程
码云,git使用 教程 code cloud, git use tutorials 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail ...