spring 框架的核心总结

最近在学习Java语言,从而也学习了SpringFramework 这个大名鼎鼎的框架。从而做一些的记录。

题外话: 学习过几种不同的语言,后来知道所有的编程语言里所有的概念翻来覆去都是一样的事物,只是它们被不同的术语所描述,加上大部分中文翻译,又扯上一些专有名词,让一些本来简单的概念变得复制而深奥。不知是因人的有限,还是那些书籍的作者有意为之,其实很多的东西本来都是很简单了,这些奇怪的名词反而让初学者糊涂起来。如果有刚开始学习编程的同学看到这里,也请注意了,不要被一些概念和名字带偏了,究其本质,也就那样。

Spring 基本概念

其实编程语言和框架的发展都是为了实际使用而来的,既然是使用,怎么使用,怎么简单的使用,怎么用更舒服就成为了其发展的主要动力了。Java框架的发展也是如此,所以spring代替了Java EE,再到后来 Spring Boot 的热门,皆是如此。因此框架的作者就会想法设法简化一些不必要和繁琐的东西。而 Spring 的核心思想就是:简化 Java 开发

为了达到这个目的,就有了以下的四个策略:

  • 基于POJO的轻量级和最小入侵性编程
  • 通过依赖注入和面向接口实现松耦合
  • 基于切面的惯例进行声明式编程
  • 通过切面和模板减少样板式代码

POJO

这个名称就是符合上面提到的问题。POJO (Plain Old Java Object) ...... 其实就是个普通Java 类,没有其他的东西了,只不过是作者为了应付那些反对叫嚣的人而扯出来的花里胡哨的名称。

因为作者的意图就是不让框架本身的API干扰到业务代码中一些定义的类,这样可以尽量是业务的代码更加干净,耦合度低,容易修改和测试,也就是所以的“最小入侵性”。但是绝对的干净还是做不到的,所以一般的业务代码上就常常出现了注解

依赖注入和控制反转

又是看起来就 高大上 的词汇。依赖注入(dependency injection)和控制反转(inversion of control) 这两者其实就是同一个东西,只是它们的表述不同而已。因为一般的应用中,要完成一个实际的功能,基本不可能只有一个类,而是多个类同时使用,使用中就会互相影响。用一个例子来说明吧,我们做一个功能,需要A类和B类,现在需要用A类创建B,修改B,删除B,A是依赖B的,但是做的功能只是输入B的信息而已,这样太麻烦了,而且它们之间联系太多,如果B需要修改,那A也就要修改。所以在 spring 中,A如果需要B,它不是直接创建B,而是找 spring,这就是将 B 的控制给了 spring, 实现控制反转。对spring 来说,当A需要B时,它为A提供,这就是依赖注入,看!只是表述不同而已。

spring 的出现,解耦和不同类之间的依赖,谁需要谁,都需要找 spring了。

AOP

又是 spring 的核心概念。 AOP (aspect-oriented programming) 面向切面编程......,面向.....编程 这类又容易让人混乱,其实就是它们的关注点不同而已。程序员写代码的思想,或者习惯。

  • 面向过程编程: 我就看实现一个功能需要什么步骤,然后用代码表示出这些步骤就好了,我不管代码的重用,耦合性问题。关注点是 步骤、过程。
  • 面向对象编程: 我需要实现该功能,但是我需要考虑到流程的结构,代码重用,耦合问题。我需要先建立一个对象,对这个对象实例化实现功能。关注点是 对象。
  • 面向切面编程: 这个是在 spring 里第一次见到的,它关注于应用中的 核心业务 模块,而设法将一些次要的,辅助的功能统一管理,如日志、安全、验证等。

原文地址:https://www.cnblogs.com/xingyys/p/11375896.html

时间: 2024-10-12 07:38:54

spring 框架的核心总结的相关文章

详解Spring框架的核心思想之IOC

微信号:GitShare微信公众号:爱折腾的稻草如有问题或建议,请在公众号留言[1] 前续 为帮助广大SpringBoot用户达到"知其然,更需知其所以然"的境界,作者将通过SpringBoot系列文章全方位对SpringBoot2.0.0.RELEASE版本深入分解剖析,让您深刻的理解其内部工作原理. No.1 Spring是什么 为了让更多的朋友了解Spring,首先科普一下Spring!有兴趣的朋友可以去Spring官网逛逛,地址是:https://spring.io/ The

spring框架 AOP核心详解

AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用 (3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around

Spring框架的核心模块的作用

Spring框架由7个定义良好的模块(组件)组成,各个模块可以独立存在,也可以联合使用. (1)Spring Core:核心容器提供了Spring的基本功能.核心容器的核心功能是用Ioc容器来管理类的依赖关系.Spring采用的模式是调用者不理会被调用者的实例的创建,由Spring容器负责被调用者实例的创建和维护,需要时注入给调用者.这是目前最优秀的解耦模式. (2)Spring AOP:Spring的AOP模块提供了面向切面编程的支持.SpringAOP采用的是纯Java实现.Spring A

Spring框架的核心概念是什么?需要掌握的知识点都有哪些?

Spring其主要精髓 就是IOC和AOP.掌握好了这两点对于理解Spring的思想颇有意义. IOC(英文 Inversion of Control)就是控制反转的意思.就是把新建对象(new Object())的权利交给Spring容器去管理.程序员用的时候只需到容器中去取就可以.无需自己在去new一个对象.有很多的资料和书籍也称其为依赖注入.在我刚学这儿的时候也经常受到"依赖注入"和"控制反转"这样概念类的困扰,其实我倒是建议楼主不必为这些概念咬文嚼字.用了一

Spring 框架基础(03):核心思想 IOC 说明,案例演示

本文源码:GitHub·点这里 || GitEE·点这里 一.IOC控制反转 1.IOC容器思想 Java系统中对象耦合关系十分复杂,系统的各模块之间依赖,微服务模块之间的相互调用请求,都是这个道理.降低系统模块之间.对象之间.微服务的服务之间耦合度,是软件工程核心问题之一.因为Spring框架中核心思想就是IOC控制反转,用来实现对象之间的解耦. 2.控制反转 传统方式 对象A如果想使用对象B的功能方法,在需要的时候创建对象B的实例,调用需要的方法,对对象B有主动的控制权. IOC容器 当使用

step4--->往工程中添加Spring框架---->修改maven的配置文件pom.xml,向工程中添加spring框架的某些模块

1.本文内容: 本文介绍使用maven向自己的项目中添加各种框架的方法,即如何配置maven的pom.xml来让maven帮助管理这些框架(包括Spring.SpringMVC.hibernate框架等等). 2.使用maven向自己的工程中添加框架: 2.1概述 若想使用maven向自己的工程中添加三方框架(如Spring.SpringMVC等),需要先确保你的工程是maven工程,如果你还不知道该如何在myeclipse中建立一个maven web project,请参考相关教程. 2.2使

Spring 框架的设计理念与设计模式分析

https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html Spring 的骨骼架构 Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图: 图 1 .Spring 框架的总体架构图 从上图中可以看出 Spring 框架中的核心组件只有三个:Core.Context 和 Beans.它们构建起了整个 Spring 的骨骼架构.没有它们就不可能有 AOP.Web

从源码理解Spring原理,并用代码实现简易Spring框架

前言(本文为原创,转载请注明出处) 个人之前对于框架的学习,就停留在配置,使用阶段.说实话过段时间就会忘得荡然无存.也不知道框架的运行逻辑,就是知道添加个注解,就可以用了. 由于实习,时间比较多,也感恩遇到个好老师,教并给我时间看源码,虽然没有做过多少业务,但是感觉比做业务更有意义.慢慢的去跟代码, 对Spring 运行流程大致有个解.现分享给大家,不足之处,希望各位补充,相互学习. 从源码看Spring 可能我们很少在意,ClassPathXmlApplicationContext这个类,其实

关于Spring框架你解多少?

类似于谈谈你对Spring的了解的题目,在很多面试中都会被提到的. Spring,英文意思是春天的意思.在java的世界里,Spring是一个现时非常流行的开源应用框架. Spring 框架是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式. 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现.每个模块的功能如下: 1.核心容器:核心容器提供 Spring 框架的基本功能.