1.框架
框架就是某一群人和某些组织定义好的类或者接口,并定义好了一系列实现,让我们在这些定义好的类和接口的基础上,能用这些类来快速形成某一领域和某一行业的解决方案,从而简化了开发的过程,提高了开发效率。
2.spring【春天】
架构设计
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应付,分布式服务架构和流动计算架构的衍生势在必行,亟需一个治理系统确保架构有条不紊的演进。
1.单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键 。
2.垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
3.分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
4.流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。
JAVA主流架构升级过程
1.jsp+servlet+javaBean
2.MVC三层架构
4.使用EJB进行应用开始,EJB是重量框架(使用时,过度依赖,侵入性强)使用上比较繁琐。
4、Struts1/Struts2+Hibernate+Spring
5、SpringMVC+Mybatis+Spring
6、SpringBoot开发,约定大于配置
spring核心解释
1.spring是一个开源框架
2.spring是简化开发而生,让开发变得简洁和优雅。
3.spring是一个IOC【控制反转】和AOP【面向切面编程】的容器【包含并管理引用对象的生命周期】框架。
spring优点:
1.spring通过DI、AOP和消除样板式代码来简化企业级Java开发。
2.低侵入设计,污染性极低。
3.独立于各种应用服务器,基于spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。
4. Spring框架之外还存在一个构建在核心框架之上的庞大生态圈,它将Spring扩展到不同的领域,如Web服务、REST、移动开发以及NoSQL。
5.Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦。
6.Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式处理,从而提供了更好的复用。
7.Spring的ORM和DAO提供了与第三方持久层框架的的良好整合,并简化了底层的数据库访问。
8.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选择集成spring部分或者全部。
DI和IOC的本质区别
很多人都觉得IOC和DI是一个东西,大方向上面这么认为是没问题的,但是严谨的来说,IOC和DI是从不同的方向去描述同一件事,IOC是根据容器的方向描述,而DI是具体实现来描述。也就是说,IOC是设计理念,DI是具体实现方式。
总结:
spring两大优势
1.解耦
在面向对象设计中,底层实现都由有N个对象组成的,所有对象都都相互合作来实现系统的业务逻辑。那么如果这种组合关系一点有一环出问题,接下来的业务逻辑将将会受到影响,出现一些无法避免的问题。这就是耦合性太高的原因,随着业务越来乐队,有些对象之间的耦合性无法避免,关系越会越来越复杂,经常需要嵌套依赖,面临这种场景我们只能做到尽量降低对象之间的耦合性,有时候模块之间也会出现耦合性太高的问题,spring的IOC正好可以实现对象之间的解耦,spring的IOC理论也是至今最为广泛未使用到的。
2.生态
任何一个语言或者任何一个框架想要立于不败之地,那么很重要的就是它的生态, 然spring本身就是一个生态系统,这也让它立于不败之地。
其中部门内容来自马士兵教育课上资料,加入了一些自己的理解。