SpringBoot入门示例

创建Maven POM文件

在pom.xml添加内容如下:

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.7.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

Spring boot 提供了很多有用的starter包,帮助我们构建Spring Boot应用。

spring-boot-starter-parent为我们提供下面功能:

  1. dependencies manager,管理Spring boot的相关依赖,这样我们在依赖其他spring boot的相关包时,可以去掉版本。
  2. 资源过滤
  3. 插件配置
  4. 针对application.properties/application.yml以及相关环境的application-xxx.properties/application-xxx.yml的资源过滤

spring-boot-starter-web为我们集成了tomcat插件以及Spring MVC。创建代码

创建代码结构如下:

com
 +- example
     +- myproject
         +- Application.java
         |
         +- web
             +- HomeController.java

应用主类Application.java

package com.example.myproject;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

spring boot默认是打包成一个可执行的jar包,和其他java程序一样,我们需要自己写一个主类来作为程序的入口。

应用启动SpringApplication.run(),其中参数为启动类。

@Configuration:设置Application为主配置类

@EnableAutoConfiguration:这是为了能够根据jar包的依赖自动配置Spring应用,例如依赖于spring-boot-starter-web,因为spring-boot-starter-web包含了tomcat 插件以及Spring MVC,系统就会自动配置如tomcat的端口等等。

@ComponentScan:启动自动扫描组件功能

@RestController
public class HomeController {

    @GetMapping("/")
    String home() {
        return "Hello World!";
    }
}

这是一个简单的Restful Controller。

启动

IDE

如果是eclipse或Intellij这些IDE,那么直接执行Appication类的main方法即可

Maven

我们在pom里添加了插件spring-boot-maven-plugin,使用maven启动:

$ mvn spring-boot:run

可执行包

如果达成了可执行包,启动如下:

java -jar target/myproject-0.0.1-SNAPSHOT.jar

启动后,在浏览器输入http://localhost:8080访问。

版权声明:著作权归作者所有。

相关推荐

IndexDB快速入门

IndexDB是适用于浏览器的文档数据库,它有以下特点:兼容所有现代的浏览器支持事务以及版本控制支持无限数量的数据。很多浏览器会限定localStorage或者sessionStorage的存储空间为2M到10MIndexDB是异步的API,它不会阻塞浏览器UI的渲染下面介绍下它的使用。安装依赖包idb需要把idb的js库添加到依赖。有几种方式添加idb到依赖。yarnyarn add&

Linux stat命令示例(系统管理命令)

说明stat命令用于显示文件或文件系统的状态。包含了文件的详细信息。语法stat [OPTION]... FILE... 常用选项-L(或--dereference):显示符号链接-f(或--file-system):显示文件系统的状态信息,而不是文件的状态信息-t,(或--terse):简洁模式,只显示摘要信息示例显示文件信息$stat /dev/vda1  Fil

Linux tee命令示例

功能从标准输入读取数据并写入到标准输出和文件。如果输出的文件不存在,则新建文件。语法tee [OPTION]... [FILE]... 选项:-a(--append): 追加输入内容到文件后面,不是覆盖。-i(--ignore-interrupts): 忽略中断信号。-help: 在线帮助。--version: 显示版本信息。示例使用管道

Python切片符号(:)用法及示例

Python的切片符号语法s[start:end:step] s:被切片的对象start:切片迭代的起始索引end:切片迭代的终止索引,但end索引不包含在切片内step:切片步长其中,start,end和step都可以被忽略。切片索引示意图简单用法>>> s = [0,1,2,3,4,5,6,7,8,9] >>> s[1

Python:defaultdict应用示例

class collections.defaultdict([default_factory[, ...]]) defaultdict继承与内置类dict,但对于不存在的键处理方式不同。dict处理缺失的键在Python访问dict不存在的键会抛出KeyError异常。如计数列表里的颜色colors = ('yellow', 'red', 'yellow',

JavaScript ES 2017: 通过示例学习Async/Await

预备知识ES 2017新增了Asynchronous函数。 在JavaScript中,Async函数本质上是一种处理异步代码的比较简洁的方法。 为了理解这些是什么,以及它们是如何工作的,我们首先需要了解Promise。如果你不知道Promise是什么,那么你应该先阅读我发表的关于Promise的这篇文章。 在理解Promise之前,你是不会理解JavaScr