spring三大核心
IOC(控制反转)
下面是多个针对此理解的表达。
- 一个对象A依赖另一个对象B就要自己去new 这是高度耦合的 IOC容器的使用。
比如在B中使用A很多,哪一天A大量更改,那么B中就要修改好多代码。 - 通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做。
- 针对一个接口,我们可能会写多个实现类,如果在代码中、程序中对实现类的对象进行创建,当想更换实现类时(使用其他的实现类),就需要对代码进行更改。
一个使用实例
通过spring的IOC功能,在xml配置文件中,给接口的实现类起一个名字“XXX”,代码中创建对象时,使用以下方式创建:
DI(Dependency Injection,依赖注入)
首先应该明白两个问题:1,谁依赖谁;2,谁注入,注入什么?
- 1
- 2
- 利用xml的配置信息,在客户端代码中不用具体new任何的java对象了,java对象的创建工作,和对象中元素的赋值工作可以交给xml(spring)处理。
- 回答文中开头两个问题:1.客户端代码中,具体对象的创建依赖于xml文件(spring,即IOC容器);2.是IOC容器注入,在运行期,根据xml的配置信息,将具体的对象注入到相应的bean中。
JavaBean:为了写出方便他人使用的类,于是规定,必须有一个零参的构造函数,同时还要用get/set方法,以便隐藏内部细节,方便使用和之后的代码更新。
- 针对一个JavaBean,为了使用它,首先需要new一个对象,之后需要对其中的set方法进行调用进而赋值。代码之间的联系变得很大,封装的特性渐渐变小。这样在修改代码时,就麻烦了。要成堆的更改,尤其是在不同团队分工开发的过程中,代码变更影响巨大。
- 通过控制反转(IOC)、依赖注入,new的同一种对象,在xml文件中都给他起一个小名,这样更改时只需要在xml文件中,将小名对应的类的具体路径更改了。不需要一个个.java文件替换。
- 在使用set方法传值时,如果针对具体的属性值,进行填写,更改起来也会麻烦一些,通过Spring来进行赋值,更改起来更加方便。
注:关于set方法传值,以及具体的操作方法好像有多种,具体理解不够,需要实际编码以及通过专业书籍系统学习。2017.1.3
面向切面AOP
可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
- 1
- 2
- 将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来
spring三大核心的更多相关文章
- spring三大核心学习(一)---控制反转
记得当年大学时候,java的企业级框架还是ssh的天下(spring,struts和hibernate),但是现在,感觉spring已经完全把那两个框架甩在后边了.用spring的人越来越多,用str ...
- Spring是什么、spring容器、Spring三大核心思想DI(依赖注入)、IOC(控制反转)、AOP(面向切面编程)
1.Spring (1)Spring是什么? 是一个轻量级的.用来简化企业级应用开发的开发框架. 注: a.简化开发: Spring对常用的api做了简化,比如,使用Spring jdbc来访问数据库 ...
- Spring的三大核心思想:IOC(控制反转),DI(依赖注入),AOP(面向切面编程)
Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧) 1.IoC是什么? IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多 ...
- 【Spring】 Spring的核心容器
Spring的核心容器 文章目录 Spring的核心容器 BeanFactory ApplicationContext 1.通过ClassPathXmlApplicationContext创建 2.通 ...
- spring IOC核心原理
下面来了解一下Spring到底是怎么运行的. public static void main(String[] args) { ApplicationContext context = new Fil ...
- spring技术核心概念纪要
一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...
- Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么?
quote:Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么? (IT公司面试手册,可以多看看) spring 框架中核心组件有三个:Core.Context 和 Beans. ...
- JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)
接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...
- Spring系列(一) Spring的核心
Spring 简介 Spring 是一个开源轻量级企业应用架构,目的是为了简化企业级应用开发.(1)Spring 框架可以帮我们管理对象的生命周期,帮助我们管理对象间的依赖关系,相互协作:(2)Spr ...
随机推荐
- 我发起了一个 支持 ServerFul 架构 的 .Net 开源项目 ServerFulManager
大家好, 我发起了一个 支持 ServerFul 架构 的 .Net 开源项目 ServerFulManager . ServerFulManager 的 目标 是 实现一个 支持 ServerFu ...
- Angular2+AngularJS
AngularJS 系列: 1.angular.module 的定义 var mapApp = angular.module("positionSalaryEditApp",[&q ...
- mongdb 报错“Cannot connect to the MongoDB at 192.179.1.6:27017. Error: Network is unreachable.”
1.命令行输入talnet 192.179.1.6 27017 看能拼通不 2.防火墙添加入站规则 27017 3.修改mongdb配置文件 mongodb.config dbpath=c:\Mon ...
- Linux基础入门-目录结构及文件基本操作
一.Linux的目录结构: Windows是以存储介质为主的,主要以盘符及分区来实现文件的管理,然后之下才是目录.但Linux的磁盘从逻辑上来说是挂载在目录上的,每个目录不仅能使用本地磁盘分区的文件系 ...
- 为服务器设置SSL证书,配置Https协议
注意 服务器要打开443端口 1.申请证书,这里推荐腾讯云或者阿里云的,有免费的证书,要求不高的盆友可以试一试 2.打开php.ini扩展. extension=php_openssl.dll 3.打 ...
- ubuntu诸软件安装
1060显卡驱动安装: sudo apt-get install nvidia-384 ss qt安装:sudo add-apt-repository ppa:hzwhuang/ss-qt5sudo ...
- 【如皋OJ】1127:正整数N转换成一个二进制数
1127: 正整数N转换成一个二进制数 时间限制: 1 Sec 内存限制: 128 MB提交: 85 解决: 59[提交] [状态] [讨论版] [命题人:zhuzhigang] 题目描述 输入一 ...
- 【rabbitmq】rabbitmq集群环境搭建
安装rabbitmq-server 总共有3台虚拟机,都安装有rabbitmq服务,安装过程可参考: [rabbitmq]Centos7 下安装rabbitmq 创建用户和vhost 说明: 此步骤不 ...
- multipart/form-data和application/x-www-form-urlencoded区别
FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型.例如: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对.这是标准的编码格 ...
- MFC 单文档调用对话框
1.插入新的Dialog,如下图: 2.修改ID位 IDD_XMB 3.在单文件的Menu 中选中需要链接的按键,右键添加处理程序,如下图所示,添加完成后,在项目的xxxview.cpp中会生成如下函 ...