SpringBoot入门

优点

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

项目创建

创建springboot项目有三种方式,不联网时maven项目,联网时官网创建和IDE中的Spring Initializer方式创建。

创建maven项目并修改pom.xml文件方式

  1. 创建maven项目
  2. 修改pom.xml文件,添加如下信息
<!-- 有parent引用才能成为springboot项目-->
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/>
    </parent>

<!-- web启动器,包含一个web项目常规的jar包-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

<!--test的启动器-->
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

<!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  1. 编写一个主程序,启动springboot项目
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 
 * 启动类启动时会扫描controller、service...注解的包及其子包
 * SpringBootApplication:标注一个主程序类,表示这个是一个Springboot应用
 */

@SpringBootApplication
public class HelloWorldMainApplication {

    public static void main(String[] args) {
        //启动
        SpringApplication.run(HelloWorldMainApplication.class, args);
    }
}
  1. 项目编写结束后,进行项目部署
  • 使用mvn package 进行打包
  • 进入打包好的jar包所在目录
  • 使用 java -jar jar包名称 运行
  1. 说明
  • org.springframework.boot是项目的父工程,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的maven依赖。使用它之后,常用的包依赖可以省去version标签。
  • ​ spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
  • @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;
  • @SpringBootConfiguration:Spring Boot的配置类;标注在某个类上,表示这是一个Spring Boot的配置类;
  • 进行不联网创建springboot项目时,需要在本地jar包仓库有上述依赖中添加的包。

联网在官网中创建项目下载并导入IDE

IDE中Spring Initializer创建项目

IDEA
  1. 创建项目时选择Spring Initializr


    1
  2. 完善项目信息


    2
  3. 选择需要的starter


    3
  4. 创建完成后 不要的文件可以删除


    4
Eclipse
  1. 需要安装插件,或者使用STS版本
  2. 创建项目时选择Spring Starter Project


    1
  3. 完善信息


    2
  4. 选择需要的选择需要的starter


    3

默认项目结构

项目结构
  • java:逻辑代码
  • resources:文件夹中目录结构
    • static:保存所有的静态资源; js、css、images;
    • templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);
    • application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;

启动器

Spring Boot将所有的功能场景抽取出来,做成一个个的starter(启动器),只需要在项目里引入这些starter,则相关场景的所有依赖都会导入进来,用什么功能就导入什么场景,在jar包管理上非常方便。
springboot提供了众多启动器:

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 种,具体如下:
1)spring-boot-starter-actuator
增加了面向产品上线相关的功能,比如测量和监控。
2)spring-boot-starter-remote-shell
增加了远程 ssh shell 的支持。
最后,Spring Boot 应用启动器还有一些替换技术的启动器,具体如下:
1)spring-boot-starter-jetty
引入了 Jetty HTTP 引擎(用于替换 Tomcat)。
2)spring-boot-starter-log4j
支持 Log4J 日志框架。
3)spring-boot-starter-logging
引入了 Spring Boot 默认的日志框架 Logback。
4)spring-boot-starter-tomcat
引入了 Spring Boot 默认的 HTTP 引擎 Tomcat。
5)spring-boot-starter-undertow
引入了 Undertow HTTP 引擎(用于替换 Tomcat)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容