天天看點

SpringBoot2系列教程(一)簡介及HelloWorld項目

Spring Boot 2.0.0.RELEASE 需要 Java 8 or 9 and Spring Framework 5.0.4.RELEASE 或者更高版本. 支援Maven 3.2+和Gradle 4 版本
支援的Servlet容器

Tomcat 8.5、Jetty 9.4、Jetty 9.4

官方版本遷移wiki

https://github.com/spring-projects/spring-boot/wiki

HelloWorld異同項目分析

1. 修改 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>springboot-mybatis</groupId>
    <artifactId>springboot-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot-mybatis</name>
    <description>Demo project for Spring Boot</description>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
  </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.0.4.RELEASE</version>
        </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>

           

2. 修改啟動類

package springbootmybatis.springbootmybatis;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableAutoConfiguration
public class MybatisApplication {

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

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

}

           
SpringBoot2系列教程(一)簡介及HelloWorld項目

運作結果

代碼中三個注解分析

兩個MVC注解:

  1. @RestController 是Spring處理web請求時用到的注解。告訴Spring将結果字元串直接呈現給調用者。
  2. @RequestMapping 提供了“路由”資訊,将

    /

    請求映射給home()方法。

SpringBoot注解:

  1. @EnableAutoConfiguration 這個注解告訴Springboot 根據你添加的jar包來猜測配置Spring 。@SpringBootApplication一樣,也可以使用exclude屬性來禁用不需要自動配置的應用。例子:

    @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})

    那麼,它和@SpringBootApplication注解有什麼關系呢?

我們來看下@SpringBootApplication注解源碼

SpringBoot2系列教程(一)簡介及HelloWorld項目

是以,@SpringBootApplication注釋是相當于使用@Configuration, @EnableAutoConfiguration以及@ComponentScan與他們的預設屬性。

通俗的講:@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan 。前提是預設配置,當然,如果你想要覆寫預設配置,你就需要重寫該注解了,重寫也很簡單,給注解加上參數就好。