Spring Boot与MVC浅谈

Spring Boot

从Spring谈起

Spring Framework诞生至今已有十多年的历史,其已经成为了Java应用程序开发框架的事实标准。作为Java企业版的轻量级代替品,Spring为企业级Java开发提供了一种相对简单的方法。现在我们可以简单回顾一下Spring的发展历程

  1. Spring1.0出现改变了开发企业级Java应用程序的方式,Spring的依赖注入与声明式事务意味着组件之间不再存在紧耦合
  2. Spring2.0可以在配置里使用自定义的XML命名空间
  3. Spring2.5有了面向注解的依赖注入模型以及面向注解的SpringMVC编程模型,不用再显式地去声明应用程序组件,也不在需要去继承某个基础的控制器类
  4. Spring3.0有了一套可以取代XML的基于Java的全新配置,Spring3.1中的一系列以@Enable开头的注解进一步完善了特性
  5. Spring4.0对条件化配置提供了支持,根据应用程序的Classpath、环境和其他因素,来决定运行时使用哪些配置

虽然Spring在不断优化,但是配置问题依然存在,与此同时,Spring的项目依赖管理也让人感到十分棘手。而Spring Boot的诞生,无疑是为了解决这些问题的。

何为Spring Boot

对于Spring Boot具体是什么,可能有些人会感到迷惑。Spring Boot可以把web应用程序打包为可执行JAR文件,不需要部署到传统的Java应用服务器就能在命令行运行,所以有人会觉得它是应用服务器。当然,这种观点是不正确的(从后文我们可以得知这是Spring Boot在应用程序里内嵌了Servlet容器的缘故)。我觉得Spring Boot本质上就是Spring,它自动为我们完成了许多我们本应该自己去完成的事情。Spring Boot的诞生,就是为了更加方便地创建可运行的、独立的、生产级的Spring应用,它需要极少的Spring配置,自带安全、度量、健康检查、内嵌服务器和外置配置且没有XML配置代码生成和XML配置要求。

Spring Boot特性

  1. 自动配置:Spring组件代码是轻量级的,但配置却是重量级的,而Spring Boot能自动针对许多Spring应用的常见功能提供相关配置。我们可以在所有的Spring应用程序中找到Java配置和XML配置的至少一种,这些配置为应用程序开启特定的特性和功能(如嵌入式数据库、JdbcTemplate),Spring Boot则会为这些常见的配置场景进行自动配置
  2. 起步依赖:我们只需要告诉Spring Boot需要什么功能,其就能引入需要的库。向项目中添加依赖其实是就是告诉项目你需要什么资源,Spring Boot通过起步依赖(org.springframework.boot:spring-boot-starter- ?)来帮助项目的依赖管理,即通过依赖传递解析把常用的库聚合在一起组成几个为特定功能定制的依赖。
  3. 内嵌Servlet容器:Spring Boot支持的嵌入servlet容器有Tomcat8.5、Jetty9.4以及Undertow1.4
  4. 命令行界面:Spring Boot的可选特性,通过命令行界面只需要编写代码就能完成完整的应用程序而无需传统项目的构建  Spring BootCLI利用了起步依赖和自动配置,让开发者可以专注于代码本身
  5.  Actuator:能深入运行中的Spring Boot应用程序。Actuator能够窥探应用程序的内部情况,包括Spring应用程序上下文配置的Bean,Spring Boot的自动配置决策,应用程序的环境变量、系统属性、配置属性和命令行参数,应用程序里线程的当前状态,应用程序最近处理过的HTTP请求的追踪情况,各种和内存使用、垃圾回收、web请求以及数据源用量相关的指标 

MVC架构

MVC的含义

MVC的缩写,代表的是模型(Model)、视图(View)以及控制器(Controller),它将数据和展现层进行解耦,是构建用户界面的一种流行方式

MVC的具体架构

  • Model:包含了应用层所需的各种展现数据
  • View:展现给用户的的多种表述数据
  • Controller:实现处理用户的操作,是连接Model和View的桥梁

我们可以通过以下这张图片来简单地了解MVC的架构

总的来说,MVC就是通过将视图与模型进行解耦(模型必须 是自包含的且与UI无关),从而实现相同数据跨多个视图重用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值