Spring 初识
一、Spring是什么?
首先可以进入Spring官网 https://spring.io/ 看一下相关介绍。
Spring为开发者提供了一站式的轻量级应用开发平台。简单来说,Spring为开发者提供了一系列的开发工具和框架,减少重复造轮子,方便开发,提高开发效率。
需要注意的是Spring不单单是一个开发框架,而是一个应用开发平台,包含了多个子项目。常见的有:
- Spring Framwork
- Spring boot
- Spring cloud
- Spring Security
- ...
Spring类似于计算机的操作系统,为企业级应用开发提供了平台支撑,主要抽象了企业级应用开发中可能遇到的共性问题,提供了一套统一的解决方案。
下图为Spring的整体架构图。
Spring分为三个层次,分别是core、component、application,即核心、组件和应用三个层次。Spring Core 是 Spring 的核心,主要包含 Spring IoC 和 Spring AOP,是其他Spring模块实现的基础。Spring Component 包含各种基于Spring Core常用开发组件,比如Spring MVC能够加快Web应用开发;Spring JDBC 封装了基本的数据库操作,还提供了对常见ORM的封装,能够使应用方便使用数据库。Spring Application 包含了Spring 平台中的一些其他子项目,比如提供安全功能的Spring Security等。
Spring的学习也以这三个层次为主线展开。核心是掌握Spring Core 和 Spring Component 的使用和实现。通过阅读和分析Spring框架源码,理解Spring设计思想,更好地指导我使用Spring开发。Spring源码中涉及大量的设计模式使用,阅读过程中需要了解常见的设计模式。
二、Spring IoC 概述
IoC(Inversion of Control)即控制反转,也叫DI(Dependence Injection)依赖注入。IOC要解决的是对象依赖的问题,优秀的系统主要通过对象间协作配合实现相关功能,系统中存在大量的对象依赖关系,传统的方式是通过依赖者直接管理其依赖的对象,会导致代码高度耦合和可测试性降低,依赖对象修改,调用对象也需要相应修改。IOC通过使用容器统一管理应用中对象和对象间的关系,某对象如果依赖其他对象,需要从IOC容器获取目标依赖对象。通过使用容器统一管理对象和对象依赖关系,极大地简化了应用开发和维护。
IoC可以以图书馆作为类比,通常我们要阅读书籍,通常需要购买并保管书,但是对于大部分人来说购买和保管的成本较高,可能有些人只是最近暂时想阅读相关书籍,没必要去购买,或是只是想阅读相关书籍,以后可能也不会看了,也没必要自己长久保存。针对这种情况,图书馆就发挥作用了,我们可以从图书借书,看完再归还,书籍由图书馆统一管理,读者省去了很多烦扰。简而言之,每个读者不需要独立购买和保管想看的书籍,交由图书馆统一管理,这就是一种IoC的模型。
三、Spring AOP 概述
AOP是Aspect-Oriented Programming 的简称,中文意思是面向切面编程。AOP本质上是一种模块化机制,将分散在应用中的用于解决特定领域问题的代码抽取成单独的模块,统一维护。同时应用中业务逻辑代码和用于解决特定领域问题的代码之间的关系将通过AOP中切面来封装、组织和维护。比如对于日志功能,在应用中的各个地方都会用到,一般都是通过直接调用日志模块的相关方法,打印相关日志,这样会导致日志功能代码和业务逻辑代码显示耦合在一起,虽然能控制打印内容,但不能灵活控制日志执行场景,比如在哪个方法中执行,在方法的那个阶段执行等。通过使用AOP能够灵活地实现这些功能。Spring AOP是针对AOP的一种解决方案,主要通过动态代理的方式实现对代码的拦截并切入相关功能。
Spring 初识的更多相关文章
- 菜鸟学习Spring——初识Spring
一.概念. Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...
- Spring初识(通过小实例清晰认识Spring)
1.spring架构: spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,iba ...
- spring初识
Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益. Sp ...
- Java使用Spring初识
1.首先是引用了,然后pom.xml如下: <dependency> <groupId>org.springframework</groupId> <arti ...
- [Spring]初识Spring-Spring的基础使用-如何通过Bean来实例化?
Spring框架的基础使用 XML配置信息,Bean的不同实例化方式,注入 实例化 XML文件中的参数设置 1.通过构造器进行实例化(重点,常用方式) <bean name="aCls ...
- [Spring]初识Spring-Spring是什么?如何实例化一个Spring容器?
关于Spring入门的基础知识点 Spring简介 Spring是由Rod Johnson创建的轻量型容器,目的在于简化企业级开发.是一种容器框架 a.降低侵入性 b.提供了IOC(控制反转)和AOP ...
- Day2 Spring初识(二)
Bean的实例化 bean实例化方式有3种:默认构造.静态工厂.实例工厂 默认构造 调用无参构造, 属性+setter User.java package entity; public class U ...
- Day1 Spring初识(一)
在网上看到一篇文章,感觉写得挺不错的,转载一下,本文转载自:http://www.cnblogs.com/xdp-gacl/p/3707631.html和http://www.cnblogs.com/ ...
- Spring初识、新建工程
1.spring与三层架构的关系: spring负责管理项目中的所有对象,是一个一站式的框架,容器中的对象决定了spring的功能. 2.spring核心架构 Spring框架主要由六个模块组成,在开 ...
随机推荐
- linux格式化磁盘命令
linux格式化磁盘命令 linux mkfs 指令:mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] [fs-opti ...
- AIX中的服务管理
1.SRC AIX系统使用资源控制器(SRC,system resource controller),控制各种服务子系统,包括启动,停止进程,搜集进程状态信息等. AIX系统中服务有子系统组 ...
- docker概述和安装
一:概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用 ...
- 深入理解JAVA虚拟机 晚期(运行期)优化(转载)
这一章节的内容实用性不强 所以不再手打笔记 转载了一篇 原文地址是http://blog.csdn.net/qq_27350929/article/details/54837595 在部分的商用虚拟机 ...
- javaScript事件--事件流
一.事件 事件是文档或者浏览器窗口中发生的,特定的交互瞬间. 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字. 事件是javaScript和DOM之间交 ...
- 19.顺时针打印矩阵(python)
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...
- spring boot2.0.2,<-1.4.8
DataSourceBuilder cannot be resolved DataSourceBuilder cannot be resolved to a type RelaxedPropertyR ...
- Codechef TRIPS Children Trips (分块、倍增)
题目链接: https://www.codechef.com/problems/TRIPS 感觉CC有点毒瘤啊.. 题解: 首先有一个性质可能是因为太傻所以网上没人解释,然而我看了半天: 就是正序和倒 ...
- bootstraptable表格columns 隐藏方法
隐藏: visible: false, 显示:visible: true, visible属性没有true或者false,是visible,invisible和gone.visible:可见的: ...
- Linux宝塔面板FTP无法连接的解决办法,跳坑实例
宝塔面板的ftp无法使用解决 先检查这些内容 1.注意内网IP和外网IP 2.检查ftp服务是否启动 (面板首页即可看到) 3.检查防火墙20端口 ftp 21端口及被动端口39000 - 40000 ...