封面

『Spring Boot系列』—— 1.入门

  |     |   本文总阅读量:

SpringBoot作为当下最热门的Java开发框架,很有必要对他有较深的了解。这里记录一下学习SpringBoot的一系列东西,以便加深了解和复习。SpringBoot官方文档

开篇

​ Spring Boot是用来简化Spring的应用开发,它是基于Spring多个框架的再封装。提供了J2EE开发的一站式解决方案

优点:

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成

MAVEN设置

​ 给maven的settings.xml配置profiles,让maven使用jdk1.8进行编译

1
2
3
4
5
6
7
8
9
10
11
12
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>

简化部署

​ 将应用打包成一个可执行的jar包

1
2
3
4
5
6
7
8
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

版本仲裁中心

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

<!-- spring-boot-starter父项目 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath>../spring-boot-parent</relativePath>
</parent>

<!-- spring-boot-parent父项目 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath>../spring-boot-dependencies</relativePath>
</parent>

​ 由上可知:spring-boot-dependencies 管理Spring Boot应用里面的所有依赖版本。没有在dependencies里面管理的依赖才需要声明版本号。

启动器

​ spring-boot-starter:Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器

自动配置

@SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用

​ @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用.

1
2
3
4
5
6
7
8
9
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
  • @SpringBootConfiguration

    标注在某个类上,表示这是一个Spring Boot的配置类

  • @EnableAutoConfiguration

    开启自动配置功能

    1
    2
    3
    @AutoConfigurationPackage
    @Import(AutoConfigurationImportSelector.class)
    public @interface EnableAutoConfiguration {
    1. @AutoConfigurationPackage

      自动配置包:将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器

    2. @Import(AutoConfigurationImportSelector.class)

      开启自动配置类选择器:Spring的底层注解@Import,给容器中导入一个组件;导入的组件由AutoConfigurationPackages.Registrar.class 决定。

      会给容器中导入非常多的自动配置类(xxxAutoConfiguration);xxxAutoConfiguration就是给容器中导入这个场景需要的所有组件,并配置好这些组件

Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的东西,自动配置类都帮我们

J2EE的整体整合解决方案和自动配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar

IDEA创建SpringBoot项目

​ 使用 Spring Initializer快速创建项目

​ 选择我们需要的模块;向导会联网创建Spring Boot项目;

默认生成的Spring Boot项目;

  • 主程序已经生成好了,我们只需要我们自己的逻辑
  • resources文件夹中目录结构
    • static:保存所有的静态资源; js css images;
    • templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);
    • application.properties:Spring Boot应用的配置文件;可以修改一些默认设置

赏我 e(=2.72) 元咖啡钱吧,您的支持将鼓励我继续创作!



文章目录
  1. 1. 开篇
  2. 2. MAVEN设置
  3. 3. 简化部署
  4. 4. 版本仲裁中心
  5. 5. 启动器
  6. 6. 自动配置
  7. 7. IDEA创建SpringBoot项目
您是第 位小伙伴 | 本站总访问量 | 已经写了 8.6k 字啦 (图片资源存储于又拍云 )

载入天数...载入时分秒...