一、计算机架构发展历程
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。
二、Java主流框架的演进
1、severlet+JSP+Javabean
2、MVC三层架构
3、使用EJB进行应用的开发,但是EJB是 重量级框架(在使用的时候,过多的接口和依赖,侵入性强),在使用上比较麻烦
4、Struts 1/Struts2+Hibernate+Spring(SSH)
5、SpringMVC+Mybatis+Spring(SSM)
6、SpringBoot开发, 约定大于配置
三、Spring简介
Spring是一个轻量级Java开发框架, 最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE fll-stack (一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。
Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。
Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection, DI) 和面向切面编程(aspect-oriented
programming, AOP)。
简略核心解释
spring是一个轻量 级的开源框架。
spring是为了简化企业开发而生的,使得开发变得更加优雅和简洁。E
spring是一个OC和AOP的容器框架。
I0C:控制反转
AOP:面向切面编程
容器.包含并管理应用对象的生命周期
使用spring的优点
1、Spring通过DI、 AOP和消除样板式代码来简化企业级Java开发
2、Spring框架之 外还存在一个构建在核心框架之上的庞大生态圈,它将Spring扩 展到不同的领域,如Web服务、REST. 移动开发以及NoSQL
3、低侵入式设计,代码的污染极低
4、独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
5、Spring的loC容 器降低了业务对象替换的复杂性,提高了组件之间的解耦
6、Spring的AOP支持允许将-些通用任务如安全、事务、日志等进行集中式处理,从而提供了更好的复用
7、Spring的ORM和DAO提供了与第三方持久层框架的的良好整合,并简化了底层的数据库访问
8、Spring的高度开放性, 并不强制应用完全依赖于Spring, 开发者可自由选用Spring框架的部分或全部
9、任何一个语言或者任何一个框架想要立于不败之地,那么很重要的就是它的生态。