Spring Boot 介绍及项目搭建(核心功能、起步依赖分析,自动配置解析)。

      1. Spring Boot 介绍

         Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

简化Spring项目的搭建和开发过程。

 快照:某一时刻的状态备份

特点:

(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;

(2)内嵌Tomcat或Jetty等Servlet容器;

(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;

(4)尽可能自动配置Spring容器;

(5)提供准备好的特性,如指标、健康检查和外部化配置;

(6)绝对没有代码生成,不需要XML配置。

Springboot官网

spring boot 项目示例 springboot项目介绍_spring

2. 创建Spring Boot项目的三种方式

  1)方式一:Spring官方网址:https://start.spring.io/

spring boot 项目示例 springboot项目介绍_spring boot 项目示例_02

 2)方式二:Idea中的Spring Initializer进入创建

spring boot 项目示例 springboot项目介绍_spring_03

 

spring boot 项目示例 springboot项目介绍_jar包_04

 3)方式三:新建maven工程,自己手动添加依赖


<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
     </parent>
    <groupId>com.hopu</groupId>
    <artifactId>helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>helloworld</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <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> 
 
在com.cjy.demo包下创建SpringBoot项目的主程序类
 
@SpringBootApplication
public class DemoApplication {

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

 }

src目录下注意:编写的代码带有注解@(你需要扫描的)必须在主程序同级包或者子包里面,否则是不会被扫描到的。

resources目录下

static:静态资源(css,js,图片..)

templates:模板(HTML)

application.properties或者application.yml  (SpringBoot的配置文件)

以上是默认的一些目录,如果你想整合其他资源例如Mybatis。

Java自动配置

Thymeleaf是Spring Boot的默认Java模板引擎

依赖:

<dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-thymeleaf</artifactId>
         </dependency>

spring-boot-starter-parent :SpringBoot的父工程,帮我们管理了很多的基础jar包

spring-boot-starter-web :SpringBoot和SpringMvc整合的jar包,并且导入了日志,tomcat,等等相关的jar包

@EnableAutoConfiguration : 开启自动配置功能

SpringApplication.run : 启动SpringBoot应用

@SpringBootApplication:包括三个标签组成

@SpringBootConfiguration - @Configuration : Spring的配置标签

@ComponentScan :组件自动扫描

dependencyManagement:该标签下的jar包,默认是不能被子项目直接使用的 , 他只有声明的功能 , 如果只项目想用这里标签里面的jar包 ,需要显示的写出来 ,而版本号使用父工程的。达到版本号统一管理的效果

dependencies:这个标签下面的jar包默认会被子项目直接继承使用