【SpringBoot】POM依赖和Spring-boot-starter

简介

SpringBoot其设计目的是为了简化spring应用的初始搭建以及开发过程,它充分利用了javaconfig的配置模式以及“约定大于配置”的理念,能够极大的简化基于Spring MVC和web应用和REST服务开发。使用SpringBoot可以使编码变简单,使配置变简单。
今天来和同学们一起讲一讲SpringBoot中的依赖和Spring-boot-starter的相关知识。

关于依赖

springboot父级依赖        

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>       

这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签,我是你们的爸爸啊,所以我直接给你version信息就可以了(继承)。

起步依赖 spring-boot-starter-xx

自动封装好了实现功能的依赖。
 
Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。举个例子,最近我的电脑坏了,打算自己组装一台电脑,于是我在网上买好了配件,万事具备只差组装了,这时候发现配件零件不匹配,心中顿时一万只羊驼在奔腾,完了零件白买了退回去吧。于是我还是老老实实在网上买了一台苹果Mac,这下就方便很多了呀,乔布斯已经给我组装好了,直接用就可以了。这样看来还是买苹果本更省事一些呀。起步依赖就像是这个苹果品牌机,自动给封装好了你想要的依赖。
 
但是springboot的依赖也有很多,所以springboot通过提供众多起步依赖降低了项目依赖的复杂度。起步依赖本质上就是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起就可以完成某项大工程。
 
让我们来学习一下吧。

Spring Boot Maven插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

功能:

  • 把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR添加一个描述文件,其中的内容能让你用java -jar来运行应用程序。
  • 搜索public static void main()方法来标记为可运行类。

spring-boot-starter-logging以及应用日志

<build>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-logging</artifactId>
</build>

那也就意味着我们的SpringBoot应用自动使用logback作为日志框架,在启动的时候,由org.springframework.boot.logging.LoggingApplicationListener根据情况初始化并使用。默认情况下,SpringBoot已经给我们提供好了很多默认的日志配置,我们只需要将spring-boot-starter-logging作为依赖加入到你的SpringBoot应用就可以了,但是如果我们要对这些默认配置进行定制,可以有两种方式进行:

  • 遵守logback的约定,在classpath中使用定制化的logback.xml配置文件。
  • 在文件系统中任意一个地方提供自己的logback.xml配置文件,然后通过如下配置来application.properties中指定我们日志系统配置文件位置:
logging.config=/{your config file location}}/logback.xml

如果我们已经习惯了log4j或log4j2,那我们只需要把spring-boot-starter-logging换成如下的starter就好。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
或
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

用于快速构建web应用的spring-boot-starter-web

我们现在工作中大部分实际应用的还是基于SpinrgMVC开发的web应用,Springboot很贴心的为我们开发了web项目模块,让我们更方便的开发web应用。
 
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

引入依赖之后呢,我们可以得到一个直接执行的web应用,然后我们运行mvn spring-boot:run,就能直接启动一个基于嵌入式Tomcat容器的web应用了,然后就可以通过controller来供用户访问了。

SpringBoot的spring-boot-starter

说了不少了,那我们一块来看看SpringBoot中spring-boot-starter家族都有哪些把。
 
  • spring-boot-starter-logging :使用 Spring Boot 默认的日志框架 Logback。
  • spring-boot-starter-log4j :添加 Log4j 的支持。
  • spring-boot-starter-web :支持 Web 应用开发,包含 Tomcat 和 spring-mvc。
  • spring-boot-starter-tomcat :使用 Spring Boot 默认的 Tomcat 作为应用服务器。
  • spring-boot-starter-jetty :使用 Jetty 而不是默认的 Tomcat 作为应用服务器。
  • spring-boot-starter-test :包含常用的测试所需的依赖,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
  • spring-boot-starter-aop :包含 spring-aop 和 AspectJ 来支持面向切面编程(AOP)。
  • spring-boot-starter-security :包含 spring-security。
  • spring-boot-starter-jdbc :支持使用 JDBC 访问数据库。
  • spring-boot-starter-redis :支持使用 Redis。
  • spring-boot-starter-data-mongodb :包含 spring-data-mongodb 来支持 MongoDB。
  • spring-boot-starter-data-jpa :包含 spring-data-jpa、spring-orm 和 Hibernate 来支持 JPA。
  • spring-boot-starter-amqp :通过 spring-rabbit 支持 AMQP。
  • spring-boot-starter-actuator : 添加适用于生产环境的功能,如性能指标和监测等功能。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章