Spring Boot 提供了一套额外的工具,可以提升应用程序开发的体验,只用在项目中包含 spring-boot-devtools 模块就行。该模块会在开发模式下设置一些默认的属性,例如:禁用缓存、设置日志等级;还会监听 classpath 的变化,自动的重启应用。
spring-boot-devtools 给开发带来了很多的便利,这篇文章总结可它的一些用法。
要使用 devtools,需要先添加模块依赖,Maven 和 Gradle 的配置如下:
Maven:
Gradle:
运行完整打包的应用时,开发工具会被禁用。当使用 java -jar 或者特殊的类加载器运行时,会被认为是生产环境。在 Maven 中使用 <optional>true</optional> 标记该依赖时可选的,或者在 Gradle 中使用自定义的 developmentOnly 配置可以防止开发工具应用到项目的其他模块。
Spring Boot 中的一些库会通过缓存来提升性能。比如:模块引擎缓存已编译的模板,已避免重复解析模板文件;Spring MVC 在响应静态资源时设置 >简单来讲,spring为java应用程序提供了全面基础支持
提供了一些依赖注入和开箱即用的模块,如下,这些模块减少了开发负担,提高了效率
使用Spring创建一个web application,依赖如下
Spring使用pring Test, JUnit, Hamcrest, and Mockito libraries都需要添加
举栗子:jsp 的web应用
Spring需要定义 dispatcher servlet, mappings 和其他 支持配置,一般是在 webxml 文件或 Initializer 文件中配置
在配置文件中添加 @EnableWebMvc 注解
需要 thymeleaf-spring5 依赖以及配置view resolver
Spring需要 spring-security-web和spring-security-config依赖
Spring还需要继承WebSecurityConfigurerAdapter类,添加@EnableWebSecurity注解
Spring和SpringBoot中应用程序引导的基本区别在于servlet。Spring使用 Webxml 或 SpringServletContainerInitiators 作为它的引导入口点。
Spring支持 Webxml 引导方式以及最新的Servlet 3+方法。
Webxml 分步骤处理:
1Servlet容器(服务器)读取 Webxml
2这个 DispatcherServlet 中定义的 Webxml 由容器实例化。
3DispatcherServlet 创造 WebApplicationContext 通过阅读 Web-INF/{servletName}-servletxml
4最后, DispatcherServlet 注册应用程序上下文中定义的bean。
以下是Spring引导程序如何使用Servlet 3+方法:
1容器搜索实现的类。 ServletContainerInitiators 并执行
2这个 SpringServletContainerInitiators 查找实现的所有类 WebApplicationInitiator
3这个 WebApplicationInitiator 使用xml或 @配置 班
4这个 WebApplicationInitiator 创建 DispatcherServlet 使用先前创建的上下文。
Spring和SpringBoot两个框架都支持像Maven和Gradle这样的通用包管理技术
Spring Boot Maven插件 在Maven中提供SpringBoot支持。它还允许打包可执行的JAR或WAR实现
在部署上下文中,SpringBoot相对于Spring的一些优点包括:
1提供嵌入式容器支持
2使用命令独立运行JAR的规定 爪哇-JAR
3选项以排除依赖项,以避免在外部容器中部署时可能发生的JAR冲突。
4选项可以在部署时指定活动配置文件。
5用于集成测试的随机端口生成
SpringBoot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的样板配置
SpringBoot构建了一个更快、更有效地开发生态系统
starter依赖简化了应用构建和配置
嵌入式服务器以避免应用程序部署的复杂性
度量指标、Helth检查和外部化配置
Spring功能的自动配置
使用Springboot创建web application的依赖如下
只需要一个starter 依赖,就把spring里面的testing libraries自动添加了
Spring提供了不同模块的常见starter如下
其他starter自定查看
地址:>
RSocket应用层协议支持 Reactive Streams语义, 例如:用RSocket作为>Spring最初利用“依赖注入”和“动态代理”解耦应用组件。
后来Spring提供了一个轻度耦合的MVC框架来开发Web应用(即 SpringMVC )。
再后来Spring为了降低项目搭建难度,提供了一套懒人开发工具包(即 Spring Boot ),它默认配置了很多框架的使用方式,简化了之前的手动配置过程。
云时代Spring又提供了一套分布式服务治理的框架(即 Spring Cloud ),它利用Spring Boot的开发便利性简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线线、负载均衠、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
springmvc框架 vs springboot
1springMVC是Spring的一部分,是一个Web框架,Spring Boot不算新的框架, 它整合了所有的框架。2springMVC需要使用到TomCat服务器,SpringBoot内嵌了Tomcat服务器。
3SpringBoot的核心思想就是约定大于配置,可以快速的搭建springMVC项目。
Spring Boot vs Spring Cloud
1Spring Boot是Spring的一套工具包,它专注于快速、方便开发单个微服务,而Spring Cloud本身不会提供具体功能性的 *** 作,更专注于服务之间的通讯、熔断、监控等全局的服务治理。
2Spring Boot可以离开Spring Cloud独立开发项目,Spring Cloud很大的一部分是基于Spring Boot来实现,属于依赖的关系。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)