SpringBoot笔记

SpringBoot概述

Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。基本上讲,这意味着您只需极少的配置,就可以快速获得一个正常运行的 Spring 应用程序。这些极少的配置采用了注解的形式,所以没有 XML。

SpringBoot工作原理

首先SpringBoot拥有较为合理的默认值,他通过自动配置的方式,使一些常用的配置自动完成,通过其自动配置的方式可快速构建应用程序。例如,我们常用的Tomcat容器,SpringBoot提供一个内嵌的Tomcat容器,我们无需再担心手动搭建Tomcat服务器的具体细节。其次,我们可通过自定义配置的方式,显示地更改我们所需要的配置,如可通过Maven的POM文件,更改其依赖项来更改我们的配置细节。

使用SpringBoot

Starter
starter 是 Spring Boot 的一个重要组成部分,用于限制您需要执行的手动配置依赖项数量。要想有效地使用 Spring Boot,您应该了解 starter。

starter 实际上是一组依赖项(比如 Maven POM),这些依赖项是 starter 所表示的应用程序类型所独有的。

所有 starter 都使用以下命名约定:spring-boot-starter-XYZ,其中 XYZ 是想要构建的应用程序类型。以下是一些流行的 Spring Boot starter:

spring-boot-starter-web 用于构建 RESTful Web 服务,它使用 Spring MVC 和 Tomcat 作为嵌入式应用程序容器。

spring-boot-starter-jersey 是 spring-boot-starter-web 的一个替代,它使用 Apache Jersey 而不是 Spring MVC。
spring-boot-starter-jdbc 用于建立 JDBC 连接池。它基于 Tomcat 的 JDBC 连接池实现。
Spring Boot starter 参考页面 还列出了其他许多 starter。您可以访问该页面来了解每个 starter 的 POM 和依赖项。

自动配置

一般情况下,Spring Boot 会使用其 @EnableAutoConfiguration 注释自动配置您的应用程序。自动配置基于类路径中的 JAR 和定义 bean 的方式:

查看配置:使用 --debug 选项启动您的 Spring Boot 应用程序,然后将向控制台生成一个自动配置报告。

Spring Boot 使用您在 CLASSPATH 中指定的 JAR,形成一个有关如何配置某个自动行为的观点。例如,如果类路径中有 H2 数据库 JAR,而且您没有配置任何其他 DataSource bean,您的应用程序会自动配置一个内存型数据库。

Spring Boot 使用您定义 bean 的方式来确定如何自动配置自身。例如,如果您为 JPA bean 添加了 @Entity 注释,Spring Boot 会自动配置 JPA,这样您就不需要 persistence.xml 文件。

创建SpringBoot项目

POM文件
例如:

<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.makotojava.learn</groupId>
    <artifactId>HelloSpringBoot</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>HelloSpringBoot</name>
    <url>http://maven.apache.org</url>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

第 10 至 14 行显示了 元素,它指定了 Spring Boot 父 POM,并包含常见组件的定义。您不需要手动配置这些组件。

第 16 至 19 行显示了 spring-boot-starter-web Spring Boot starter 上的 。它们告诉 Spring Boot,该应用程序是 Web 应用程序。Spring Boot 会相应地形成自己的观点。

第 25 至 30 行 告诉 Maven 使用 spring-boot-maven-plugin 插件生成该 Spring Boot 应用程序。

配置不是太多,对吧?请注意,这里没有 XML。我们使用 Java 注释完成剩余配置。

SpringBoot如何形成观点

Spring Boot 的观点基于 POM 的内容,包括您在初步配置应用程序时指定的 Spring Boot starter。形成有关想要构建的应用程序类型的观点后,Spring Boot 会提供一组 Maven 依赖项。例如我们创建Web项目,我们在Maven中引入spring-boot-starter-web Spring Boot starter 上的 ,那么基于这个starter,SpringBoot会形成以下观点,即自动配置思路。

  • 使用 Tomcat 作为嵌入式 Web 服务器容器
  • 使用 Hibernate 进行对象-关系映射 (ORM)
  • 使用 Apache Jackson 绑定 JSON
  • 使用 Spring MVC 作为 REST 框架

以上是最流行的Web应用程序的默认设置,一般情况下使用以上配置足够,当然,我们可以自定义配置来覆盖自动配置从而使用不同的技术。

自定义配置的方法可见我的另一篇博客 SpringBoot自定义配置

例如您并不想使用Tomcat,而想使用Jetty,那么只要在starter-web的依赖项中添加如下:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
</dependencies>

Maven中许多优秀的功能在中引入,当然可以选择不使用,但需要在Maven插件中加入repackage语句如下:


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.5.2.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

构建可执行程序

构建可执行Jar

  • 在IDE中进行Maven构建,点击clean、build即可。
  • 命令行构建

运行可执行jar

要运行刚创建的可执行 JAR,请打开 Mac 终端窗口或 Windows 命令提示,导航到 HelloSpringBoot 项目文件夹,然后执行:

java -jar target/HelloSpringBoot-1.0-SNAPSHOT.jar
其中 target 是构建的默认输出目录。如果为它配置了不同的目录,请在上面的命令中进行相应的替换。

Spring Boot 的输出包含一个文本式 “启动屏幕”(可手动进行替换如图)
在这里插入图片描述
如上一个简易的SpringBoot便已经创建并执行成功了。

END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值