Spring工作原理分析
1. 控制反转IoC
Spring的核心功能就是IoC,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。
具体来说就是,在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类名、通过property标签说明该类的属性名、通过constructor-args说明构造方法的参数。当通过applicationContext.getBean(“bean的id名称”)得到一个类实例时,就是以bean标签的类名、属性名、构造方法的参数为基础,通过反射的方式来实例对象,唤起对象的set方法设置属性值、通过构造方法的newInstance实例化得到对象。
关于反射机制,可以参看Java知识整理——反射。
2. 面向切面编程AOP
第二大功能就是AOP,其机理来自于代理模式,代理模式有三个角色分别是通用接口、代理、真实对象。代理、真实对象实现的是同一接口,将真实对象作为代理的一个属性,向客户端公开的是代理,当客户端调用代理的方法时,代理找到真实对象,调用真实对象方法,在调用之前之后提供相关的服务,如事务、安全、日志。
Spring工作原理分析相关推荐
- Spring工作原理与单例ThreadLocal
最近看到spring管理的bean为单例的,当它与web容器整合的时候始终搞不太清除,就网上搜索写资料, Tomcat与多线程 servlet是多线程执行的,多线程是容器提供的能力. servlet为 ...
- Spring事务原理分析(一)--@EnableTransactionManagement 到底做了什么?
目录 一.概述 二.事务的ACID属性 三.事务的隔离级别 四.事务的传播行为 五.Spring声明式事务环境搭建 六.@EnableTransactionManagement分析 七.AutoPro ...
- spring ioc原理分析
spring ioc原理分析 spring ioc 的概念 简单工厂方法 spirng ioc实现原理 spring ioc的概念 ioc: 控制反转 将对象的创建由spring管理.比如,我们以前用 ...
- 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包
浅谈:Spring Boot原理分析(更多细节解释在代码注释中) 通过@EnableAutoConfiguration注解加载Springboot内置的自动初始化类(加载什么类是配置在spring.f ...
- RxJs map operator 工作原理分析
使用一个例子来研究 map 操作符的工作原理. 推荐阅读本文之前,先浏览这篇文章RxJs fromEvent 工作原理分析以了解相关知识. 源代码: import { Component, OnIni ...
- Hadoop生态圈-Zookeeper的工作原理分析
Hadoop生态圈-Zookeeper的工作原理分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 无论是是Kafka集群,还是producer和consumer都依赖于Zoo ...
- 原理剖析(第 009 篇)ReentrantReadWriteLock工作原理分析
2019独角兽企业重金招聘Python工程师标准>>> 原理剖析(第 009 篇)ReentrantReadWriteLock工作原理分析 一.大致介绍 1.在前面章节了解了AQS和 ...
- 匿名突破网络限制 (Tor工作原理分析)
转载自:http://blog.163.com/mike_gz/blog/static/247532200672932800/ 网管顾名思义,就是天天管着网络.想尽各种手段限制我们上网的人.在网络中订 ...
- 面试中问的话题Spring工作原理
Spring工作原理 内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 反射其实就是在运行时动态的去创建.调用对象,Spring就 ...
最新文章
- Windows10下安装配置 perl 环境
- Linux系统服务(systemctl)的使用
- python3练习-装饰器
- why在重写equals时还必须重写hashcode方法
- python web开发-flask中response,cookies,session对象使用详解
- 脚本配置文件(通过一个案例解释下什么叫脚本配置文件)
- EXCEL中提取某行最后一个有效单元格数据
- jquery事件重复绑定的几种解决方法 (二)
- Unit Three-Program test
- python多任务-线程
- 4.8 数值分析: 牛顿迭代法及收敛分析
- WinHex自定义模板
- 易福门SM6004电磁流量计
- 漏洞四处,苹果电脑也不再安全?(转)
- Android开发一个简单的交互式App
- BGP Aggregation – Suppress Map
- 使用 Nginx 部署前后端分离项目,解决跨域问题
- 计算机一级照片提取,iCloud里面的照片怎么在电脑上提取
- 自学前端设计——【开源骚客】FPGA超详细入门视频教程
- 弗吉尼亚理工计算机科学排名,弗吉尼亚理工大学计算机科学硕士排名第46(2020年TFE Times排名)...