Spring Boot入门

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Spring Boot入门,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文


前言

Spring Boot提供了一种新的编程范式,能在最小的阻力下开发Spring应用程序。有了它,你可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,不用在Spring的配置上多花功夫,甚至完全不用配置。

官网 https://spring.io/projects/spring-boot
Github网址 https://github.com/spring-projects/spring-boot


一、Spring Boot重点

SpringBoot所具备的特征有:

  • 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
  • 内嵌Tomcat、Jetty或Undertow等Servlet容器;
  • 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
  • 尽可能自动配置Spring容器;
  • 提供准备好的特性,如指标、健康检查和外部化配置;
  • 绝对没有代码生成,不需要XML配置

Spring Boot最重要的是以下四个核心。

  1. 自动配置:针对很多Spring应用程序常见的应用功能, Spring Boot能自动提供相关配置。

  2. 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。

  3. 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。(Command Line Interface, CLI)

  4. Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。
    安装了Actuator就能窥探应用程序的内部情况包括如下细节:
    Spring应用程序上下文里配置的Bean
    Spring Boot的自动配置做的决策
    应用程序取到的环境变量、系统属性、配置属性和命令行参数
    应用程序里线程的当前状态
    应用程序最近处理过的HTTP请求的追踪情况
    各种和内存用量、垃圾回收、 Web请求以及数据源用量相关的指标。

    Actuator通过Web端点和shell界面向外界提供信息。如果要借助shell界面,你可以打开SSH( Secure Shell),登入运行中的应用程序,发送指令查看它的情况。

SpringBoot采用了“约定优于配置”的规则,大部分情况下依赖它提供的starter后,就可以使用默认的约定,加上属性文件,做大量的自定义配置,使开发更为简单;

二、创建Spring Boot项目

介绍以下两种新的创建Spring boot项目的方式:

安装 Spring Boot CLI

Spring Boot CLI有好几种安装方式。

  1. 用下载的分发包进行安装。
  2. 用Groovy Environment Manager进行安装。
  3. 通过OS X Homebrew进行安装。
  4. 使用MacPorts进行安装。

部分步骤省略,因为个人偏向于传统方式。

使用 Spring Initializr 初始化 Spring Boot 项目

Spring Initializr从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构。虽然不能生成应用程序代码,但它能为你提供一个基本的项目结构,以及一个用于构建代码的Maven或Gradle构建说明文件。你只需要写应用程序的代码就好了。
Spring Initializr有几种用法。

  1. 通过Web界面使用。(https://start.spring.io/)
  2. 通过Spring Tool Suite使用。
  3. 通过IntelliJ IDEA使用。(Ultimate 版本支持)
  4. 使用Spring Boot CLI使用。

三、相关说明

起步依赖

我们并不需要指定版本号,起步依赖本身的版本是由正在使用的Spring Boot的版本来决定的,而起步依赖则会决定它们引入的传递依赖的版本。
在Maven里使用dependency插件的tree目标也能获得相似的依赖树。

mvn dependency:tree

覆盖起步依赖引入的传递依赖,下面的知识点蛮重要的:
起步依赖添加好后,我们还是可以做下面的操作:

  1. 在Maven里,可以用<exclusions>元素来排除传递依赖。
  2. 需要更加新版本的依赖,直接在pom.xml中添加新的dependency即可。因为Maven总是会用最近的依赖,也就是说,你在项目的构建说明文件里增加的这个依赖,会覆盖传递依赖引入的另一个依赖。
  3. 指定使用老版本的依赖,需要借助上面2步。

例如,以Spring Boot的Web起步依赖为例,它传递依赖了Jackson JSON库。我们可以根据实际情况,进行上面的三种操作。

自动配置

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。
如果某个外部依赖存在与classpath中,那么Spring boot将会自动配置相应的组件(bean)。
每当应用程序启动的时候,Spring Boot的自动配置都要做将近200个这样的决定,涵盖安全、集成、持久化、Web开发等诸多方面。所有这些自动配置就是为了尽量不让你自己写配置。

例如:

  • 因为Classpath里有Thymeleaf,所以Thymeleaf会配置为Spring MVC的视图,包括一个Thymeleaf的模板解析器、模板引擎及视图解析器。视图解析器会解析相对于Classpath根目录的/templates目录里的模板。
  • 因为Classpath里有Spring MVC(归功于Web起步依赖),所以会配置Spring的DispatcherServlet并启用Spring MVC。
  • 因为这是一个Spring MVC Web应用程序,所以会注册一个资源处理器,把相对于Classpath根目录的/static目录里的静态内容提供出来。(这个资源处理器还能处理/public、/resources和/META-INF/resources的静态内容。)
  • 因为Classpath里有Tomcat(通过Web起步依赖传递引用),所以会启动一个嵌入式的Tomcat容器,监听8080端口。

条件化注解

Spring Boot运用条件化配置的方法是,定义多个特殊的条件化注解,并将它们用到配置类上。
在这里插入图片描述
Spring Boot自动配置承担起了配置Spring的重任。

四、其他

spring boot 配置文件有哪几种类型?它们有什么区别?

Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件。相对于properties文件而言,yml文件更年轻,也有很多的坑。可谓成也萧何败萧何,yml通过空格来确定层级关系,使配置文件结构跟清晰,但也会因为微不足道的空格而破坏了层级关系。

总结

简单介绍和了解了Spring boot的相关知识,不断学习与深入。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155786.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!