SpringBoot模块组成

1.1、 spring-boot模块

该模块提供了一些特性用来支持springboot中其他模块,这些特性包含如下。

  • SpringApplication类提供了静态方法以便于写一个独立了spring应用程序,该类的主要职责是create和refresh一个合适的Spring 应用程序上下文(ApplicationContext)

  • 给web应用提供了一个可选的web容器(目前有Tomcat或Jetty)

  • 一流的外部配置的支持(application.properties)

  • 提供了便捷的应用程序上下文(ApplicationContext)的初始化器,以便在ApplicationContext使用前对其进行用户定制。

1.2、 spring-boot-autoconfigure模块

springboot可以依据classpath里面的依赖的内容来自动配置bean到IOC容器,但是要开启这个自动配置功能需要添加@EnableAutoConfiguration注解。Auto-configuration会尝试推断哪些beans是用户可能会需要的。比如如果HSQLDB包在当前classpath下,并且用户并没有配置其他数据库链接,这时候Auto-configuration功能会自动注入一个基于内存的数据库连接到应用的IOC容器。

目前 auto-configuration 提供以下类型的注入:

  • Web (Tomcat or Jetty, Spring MVC)

  • JDBC (Commons DBCP, embedded databases, jdbcTemplate)

  • JPA with Hibernate

  • Spring Data JPA (automatically detecting Repository classes)

  • Spring Batch (including JobLauncherCommandLineRunners and database initialization)

  • Thymeleaf templating

  • Reactor asynchronous JVM programming

auto-configuration使用在class上标注@Configuration注解实现,并且使用@Configuration的时候一般带有一定的约束,比如同时还在Class上标注了 @ConditionalOnClass(当前classpath下存在类) 和@ConditionalOnMissingBean(当前IOC容器不存在bean)注解。这保证了classpath下存在一些相关的类并且需要的bean还没有被注入到IOC时候auto-configuration才生效。

1.3、 spring-boot-starters模块

Starters是一组可以方便使用的依赖描述,starter里面一般只有一个POM文件,pom文件里面添加了Spring框架和一些相关的功能模块的依赖配置,你需要使用某些功能时候在也不需要到处查找需要的功能都是那些jar包提供的并配置到POM文件了。比如如果你想要使用Spring和JPA作为数据库存取,你需要引入spring-boot-starter-data-jpa在你的工程即可。

1.4、 spring-boot-actuator模块

SpringBoot还提供了许多附加功能,可以帮助我们在应用程序部署到生产环境后对其进行监控和管理。springboot提了http,jmx,shell等公交来管理和监控我们的应用程序。另外审计,监控和性能指标的收集可以自动应用到应用程序上。

1.5、 spring-boot-cli模块

Spring Boot CLI是一个命令行公交用来快速搭建一个spring原型应用,并且可以运行Groovy脚本。

1.6、 spring-boot-loader模块

Spring Boot Loader模块允许我们使用java -jar archive.jar运行包含嵌套依赖的jar或者war文件,

正常情况下classloader只能找到jar里面文件类里面的*.class文件,之前都是把嵌套jar里面的class文件和应用的class文件打包为一个jar,这样就不存在嵌套jar了,但是这样做就不能很清晰的知道应用到底依赖了哪些东西,哪些是应用自己的,另外多个jar里面的class可能内容不一样但是文件名却一样。为了解决这些问题,SpringBoot提供了一种方式,Springboot中jar文件格式固定如下:

0?wx_fmt=png

应用依赖的jar固定放到lib目录。

该模块中Launcher用来启动我们的打包应用程序,它主要关心构造一个合适的URLClassLoader加载器用来调用我们应用程序的main方法。

对应jar包,spring-boot-maven-plugin插件会设置META-INF/MANIFEST.MF中的

也就是java -jar 方式启动应用实际启动的是JarLauncher

欢迎关注微信公众号:‘技术原始积累’

0?wx_fmt=png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SpringBoot最大的特点是简化了开发过程,让开发人员能够快速、方便、有效地构建和部署基于Spring框架的应用程序。它提供了一种可靠、灵活的方式来构建强大的RESTful Web服务和应用程序。SpringBoot还提供了大量的自定义选项,可以让开发人员根据自己的需求来调整应用程序的配置。 ### 回答2: Spring Boot是一个基于Spring框架,用于开发和部署独立、可独立运行的、生产级别的Java应用程序的框架。Spring Boot有以下几个特点: 1. 简化配置:Spring Boot采用约定优于配置的理念,开发者可以通过少量的配置快速搭建一个可运行的应用程序,减少了繁琐的配置过程。 2. 内嵌式容器:Spring Boot内置了Tomcat、Jetty等常用的Web容器,开发者不需要单独部署Web服务器,只需要打包为可执行的JAR文件即可运行。 3. 自动配置:Spring Boot根据项目的依赖自动进行配置,避免了繁琐的手动配置过程。开发者只需要在项目的配置文件中进行少量的配置即可。 4. 无需代码生成:Spring Boot不需要生成代码或者XML配置文件,通过注解和约定,可以快速开发出可运行的应用程序。 5. 微服务支持:Spring Boot提供了对微服务的良好支持,例如通过Spring Cloud可以快速搭建分布式系统、服务注册与发现、断路器等。 6. 监控与管理:Spring Boot提供了丰富的监控和管理功能,通过Actuator可以查看应用程序的运行状态、健康情况、线程等信息。 7. 良好的开发体验:Spring Boot提供了强大的开发工具和开发支持,例如Spring Initializr可以快速生成项目骨架,Spring DevTools可以提升开发效率。 总之,Spring Boot是用于开发生产级别Java应用程序的框架,它的特点是简化配置、内嵌式容器、自动配置、无需代码生成、微服务支持、监控与管理以及良好的开发体验。这些特点使得Spring Boot成为开发者快速构建可独立运行、生产级别的应用程序的理想选择。 ### 回答3: Spring Boot是一个用于构建生产级别的独立Java应用程序的框架。它拥有以下几个特点。 1. 简化配置:Spring Boot采用了约定大于配置的原则,大部分的配置都可以通过默认值自动推断出来,从而简化了代码中的配置量。通过使用注解和属性自动装配,开发人员可以更快速、更轻松地启动和配置应用程序。 2. 集成度高:Spring Boot提供了许多现成的功能模块,如框架整合、数据库访问、安全性、监控等。这些模块可以通过简单的配置来集成到应用程序中,使得开发人员不需要手动配置和集成这些模块,而是可以直接使用它们提供的功能。 3. 内嵌式服务器:Spring Boot集成了多个内嵌式的HTTP服务器,例如Tomcat、Jetty和Undertow,开发人员可以选择其中一种作为应用程序的默认服务器。这样一来,开发人员可以将应用程序打包成可执行的JAR文件,通过简单的命令就可以启动应用程序,而无需额外安装和配置外部服务器。 4. 微服务支持:Spring Boot提供了对开发微服务架构的良好支持。通过使用Spring Cloud框架,开发人员可以很容易地构建和部署分布式系统。Spring Boot可以与Eureka、Ribbon、Feign、Zuul等框架无缝集成,提供了服务注册与发现、负载均衡、远程调用等功能。 总的来说,Spring Boot具有简化配置、高集成度、内嵌式服务器和微服务支持等特点,使得开发人员能够更快速、更便捷地开发和部署Java应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值