Spring Boot 2.0 :入门篇

1.Spring Boot 概述

Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.

这段话大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。

Spring Boot 有什么好处

之前的web项目需要大量的配置

  • 配置 web.xml,加载 spring 和 spring mvc
  • 配置数据库连接、配置日志文件
  • 配置家在配置文件的读取,开启注解
  • 配置mapper文件

而使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且利用 IDEA 可以自动生成生成

2.开始第一个项目

在Idea中创建 Spring Initializr项目,添加web模块。最终创建出来项目。

项目结构

  • SpringbootApplication: 一个带有 main() 方法的类,用于启动应用程序
  • SpringbootApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
  • application.properties:一个空的 properties 文件,可以根据需要添加配置属性
  • pom.xml: Maven 构建说明文件

2.创建Controller

//该注解是 @Controller 和 @ResponseBody 注解的合体版
@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello !";
    }
}

访问localhost:800/hello看到’hello!’的结果。

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

    <groupId>cn.lc</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--核心模块,包括自动配置支持、日志和YAML-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--测试模块,包括JUnit、Hamcrest、Mockito-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

我们可以看到一个比较陌生一些的标签 ,这个标签是在配置 Spring Boot 的父级依赖。并且他提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签。

4.应用入口

Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Javay 应用的入口方法。

@SpringBootApplication
public class SpringboootdemoApplication {

    public static void main(String[] args) {

        SpringApplication.run(SpringboootdemoApplication.class, args);
    }
}

@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、@EnableAutoConfiguration、@ComponentScan; 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。

  • @ComponentScan 如果不设置basePackage的话 默认会扫描包的所有类,所以最好还是写上basePackage ,减少加载时间。默认扫描*/.class路径 比如这个注解在com.lc下面 ,那么会扫描这个包下的所有类还有子包的所有类,比如com.lc.service包的所有类。
  • @Configuration 表示这个类中定义了Bean,会把这个类中bean加载到spring容器中
  • @EnableAutoConfiguration 会在你开启某些功能的时候自动配置 ,这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用,并对Spring进行相应地设置。

5.Spring Boot 的配置文件

Spring Boot 使用一个全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目录或者类路径的 /config 下。Spring Boot 不仅支持常规的 properties 配置文件,还支持 yaml 语言的配置文件。

在application.properties中
这里写图片描述
然后在controller中使用@value注解

@RestController
public class HelloController {
    @Value("${name}")
    String name;

    @RequestMapping("/hello")
    public String hello() {
        return "hello ! " + name;
    }
}

结果为
这里写图片描述

猜你喜欢

转载自blog.csdn.net/TheLudlows/article/details/81354321