SpringBoot无废话入门01:最简SpringBoot应用

举报
码农星球陆敏技 发表于 2019/04/02 10:13:03 2019/04/02
【摘要】 虽然本篇讲的是一个最简的SpringBoot应用,但是要说明的是:学习SpringBoot是有门槛的,这个门槛就是, 1:首先得有框架的基础,比如SSM; 2:MAVEN基础。 在学好上面两者的基础上,我们才能明白SpringBoot干了一件什么事情,以及它是怎么帮我们组织项目结构的。 我们假设你对于上面...

        图片1.jpg

        虽然本篇讲的是一个最简的SpringBoot应用,但是要说明的是:学习SpringBoot是有门槛的,这个门槛就是,

        1:首先得有框架的基础,比如SSM;

        2:MAVEN基础。

        在学好上面两者的基础上,我们才能明白SpringBoot干了一件什么事情,以及它是怎么帮我们组织项目结构的。

        我们假设你对于上面两者的知识都已经掌握,再开始对本文的学习。

1.创建web项目

n_1903131438076330919.png

n_1903131443377612471.png

        然后一路next到finish。

        等待Generating project in Batch mode完毕,最终生成的目录为:

n_1903131443558173951.jpg


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文件中会定义了多少依赖包,

n_1903131445466490303.jpg

        除了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 就行!

        能看到这样的输出,

n_1903131446594841223.jpg

        这表明什么?

        这表明我们执行main方法后,springboot为我们启动了一个web服务器,能够为我们提供web服务!

        然后,localhost吧……

n_1903131447145776359.jpg

4.测试代码的maven启动方式

        除了run as application,由于在pom文件中我们配置了spring-boot-maven-plugin,所以我们可以使用maven的启动方式,

n_1903131447308862887.png

        紧接着启动命令,能看到:

n_1903131447478874927.jpg

        再localhost一下,看是不是很成功呢!

5.SpringBoot的优点

        想必至此,大家应该已经明白了SpringBoot的优点。它让我们执行application一样的来执行JavaWeb项目。并且,基础0配置,就让这个JavaWeb项目支持了Spring和SpringMVC,而往常,我们往往要进行若干细致的配置才行。

        有经验的同学,应该也已经明白了这里面的窍门,同时也知道这算不上多玄幻的技术。但是就是这奇思妙想,却极大的提升了我们这些开发人员的效率。

        感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。