Springboot简介

  1. 1. 一、springboot2的核心模块
  2. 2. 二、springboot的启动类入口分析
  3. 3. 三、深入探索 SpringApplication 执行流程
  4. 4. 四、IDEA创建项目之后的目录结果
  5. 5. 五、项目属性配置
  6. 6. 六、注解
  7. 7. 七、The “main” Method

使用2.0.0以上版本的springboot需要安装jdk1.8以上的版本!!

一、springboot2的核心模块

​ springboot中提供了许多的starter模块,为开发者提供了许多“一站式”服务。通过在项目添加对应框架的starter依赖,可以免去到处寻找依赖包的烦恼。只要加一个依赖项目就可以运行,这就是starter的作用。Springboot官方提供的starter模块,一般命名“spring-boot-starter-*”,其中 “ * ”代表要使用的应用。

spring Boot应用启动器基本的一共有44种,具体如下

SpringBoot - starter 有哪些模块
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。

2)spring-boot-starter-actuator 帮助监控和管理应用。

3)spring-boot-starter-amqp 通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol)。

4)spring-boot-starter-aop 支持面向方面的编程即AOP,包括spring-aop和AspectJ。

5)spring-boot-starter-artemis 通过Apache Artemis支持JMS的API(Java Message Service API)。

6)spring-boot-starter-batch 支持Spring Batch,包括HSQLDB数据库。

7)spring-boot-starter-cache 支持Spring的Cache抽象。

8)spring-boot-starter-cloud-connectors 支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。

9)spring-boot-starter-data-elasticsearch 支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。

10)spring-boot-starter-data-gemfire 支持GemFire分布式数据存储,包括spring-data-gemfire。

11)spring-boot-starter-data-jpa 支持JPA(Java Persistence API),包括spring-data-jpa、spring-orm、hibernate。

12)spring-boot-starter-data-MongoDB 支持MongoDB数据,包括spring-data-mongodb。

13)spring-boot-starter-data-rest 通过spring-data-rest-webmvc,支持通过REST暴露Spring Data数据仓库。

14)spring-boot-starter-data-solr 支持Apache Solr搜索平台,包括spring-data-solr。

15)spring-boot-starter-freemarker 支持FreeMarker模板引擎。

16)spring-boot-starter-groovy-templates 支持Groovy模板引擎。

17)spring-boot-starter-hateoas 通过spring-hateoas支持基于HATEOAS的RESTful Web服务。

18)spring-boot-starter-hornetq 通过HornetQ支持JMS。

19)spring-boot-starter-integration 支持通用的spring-integration模块。

20)spring-boot-starter-jdbc 支持JDBC数据库。

21)spring-boot-starter-jersey 支持Jersey RESTful Web服务框架。

22)spring-boot-starter-jta-atomikos 通过Atomikos支持JTA分布式事务处理。

23)spring-boot-starter-jta-bitronix 通过Bitronix支持JTA分布式事务处理。

24)spring-boot-starter-mail 支持javax.mail模块。

25)spring-boot-starter-mobile 支持spring-mobile。

26)spring-boot-starter-mustache 支持Mustache模板引擎。

27)spring-boot-starter-Redis 支持Redis键值存储数据库,包括spring-redis。

28)spring-boot-starter-security 支持spring-security。

29)spring-boot-starter-social-facebook 支持spring-social-facebook

30)spring-boot-starter-social-linkedin 支持pring-social-linkedin

31)spring-boot-starter-social-twitter 支持pring-social-twitter

32)spring-boot-starter-test 支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

33)spring-boot-starter-thymeleaf 支持Thymeleaf模板引擎,包括与Spring的集成。

34)spring-boot-starter-velocity 支持Velocity模板引擎。

35)spring-boot-starter-web S支持全栈式Web开发,包括Tomcat和spring-webmvc。

36)spring-boot-starter-websocket 支持WebSocket开发。

37)spring-boot-starter-ws 支持Spring Web Services。

Spring Boot应用启动器面向生产环境的还有2种,具体如下:

38)spring-boot-starter-actuator 增加了面向产品上线相关的功能,比如测量和监控。

39)spring-boot-starter-remote-shell 增加了远程ssh shell的支持。

最后,Spring Boot应用启动器还有一些替换技术的启动器,具体如下:

40)spring-boot-starter-jetty 引入了Jetty HTTP引擎(用于替换Tomcat)。

41)spring-boot-starter-log4j 支持Log4J日志框架。

42)spring-boot-starter-logging 引入了Spring Boot默认的日志框架Logback。

43)spring-boot-starter-tomcat 引入了Spring Boot默认的HTTP引擎Tomcat。

44)spring-boot-starter-undertow 引入了Undertow HTTP引擎(用于替换Tomcat)。

二、springboot的启动类入口分析

@SpringBootApplication : 是Sprnig Boot项目的核心注解,目的是开启自动配置。

​ 1. @SpringBootApplication注解用于启动springboot。

​ 2. @SpringBootApplication注解与@Configuration,@EnableAutoConfiguration,@ComponentScan等三个注解完全等价(前者是有后者三个注解合并而来的)

三、深入探索 SpringApplication 执行流程

略…….

四、IDEA创建项目之后的目录结果

  1. src/main/java 目录下包括主程序入口类,可用来启动程序;及所需的接口 、类文件。

  2. src/main/resources 是资源目录,存放一些配置信息。由于开发的web应用,因此在src/main/resources下产生了static子目录和template子目录,statis子目录存放静态资源(如css,js等文件);templa子目录主要用于存放web页面动态视图文件。

  3. pom.xml是项目管理的重要文件。

五、项目属性配置

​ 1. 在springboot中主要通过application.properties文件、application.yml文件实现对属性的配置。

​ 2. 这两种文件的格式不同,但内容对应、作用相同。

​ 3. 配置文件的默认执行顺序是:

​ 项目根目录下的config子目录 -> 项目根目录 -> 项目classpath子目录下的config子目录 -> 项目classpath子目录。

六、注解

  1. @EnableAutoConfiguration Annotation:这个注解告诉 Spring Boot 根据你添加的 jar 依赖来“猜测”你想如何配置 Spring。由于 spring-boot-starter-web 添加了 Tomcat 和 Spring MVC,因此自动配置,假定您正在开发 Web 应用程序并会相应地设置 Spring。

七、The “main” Method

1
2
3
4
5
6
7
@SpringBootApplication
public class HelloSpringbootApplication {

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

​ 我们应用程序的最后一部分是main 方法。这只是遵循应用程序入口点的 Java 约定的标准方法。 我们的 main 方法通过调用 run 委托给 Spring Boot 的SpringApplication 类。SpringApplication 引导我们的应用程序,启动 Spring,然后启动自动配置的 Tomcat Web 服务器。我们需要将 Example.class 作为参数传递给 run 方法来告诉 SpringApplication 哪个是主要的 Spring 组件。 args 数组也被传递以公开任何命令行参数。