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 ...
随机推荐
- Python(三)——文件操作
在我们用语言的过程中,比如要往文件内进行读写,那么势必要进行文件操作,那么咋操作呢?用眼睛直接看么?今天就定个小目标,把文件读写那些事扯一扯 文件操作 把大象放进冰箱分几步? 第一步:打开冰箱 第二步 ...
- 环境准备阶段--搭建oracle linux 6.5系统
环境准备阶段--搭建oracle linux 6.5系统 选择9.x版本兼容性 分配6GB内存 再次重启可以进入桌面,提示如下,勾选然后close 配置主机名,网络.hosts [root@ocp-1 ...
- java 运算符的优先级比较
口诀:淡云一笔安洛三福 单目>算数运算符>移位>比较>按位>逻辑>三目>赋值 单目运算符:+,-,++,-- 算数运算符:+,-,*,/,% 移位运算符:&l ...
- Hbase数据库
1.简介 HBase从诞生至今将近10年,在apache基金会的孵化下,已经变成一个非常成熟的项目,也有许多不同的公司支持着许多不同的分支版本,如cloudra等等. HBase不同于一般的关 ...
- pascalcontext-fcn全卷积网络结构理解
一.说明 fcn的开源代码:https://github.com/shelhamer/fcn.berkeleyvision.org 论文地址:fully convolutional networks ...
- 新手尝试Android studio连接mumu调试程序
由于Android studio本身虚拟机比较卡在安装as的时候就没有安装.于是自己安装了一款手机模拟器mumu模拟器.我想真机可以调试那么摸仪器应该也可以,于是就从网上找资料,其实连接很简单. 1. ...
- 利用redis 漏洞入侵挖矿临时解决办法
top 看到一个bashd的进程占据了cpu ps aux |grep bashd cd /tmp 发现ddg.2011 的文件.root dump.rdb 在/root/.ssh 也有奇怪的文件 ...
- Java核心-多线程-并发控制器-Semaphore信号量
Semaphore是非常有用的一个多线程并发控制组件(Java还有CountDownLatch.CyclicBarrier.Exchanger多线程组件),它相当于是一个并发控制器,是用于管理信号量的 ...
- python(list、字典、元组、字符串方法、文件读写)草稿
1.list 定义list a = [] 添加元素 a.append('xx') #在list末尾添加 a.insert(0,'abc') #在指定某位置添加元素.指定的下标不存在就在末尾添加 ...
- JAVA除法保留小数点后两位的两种方法
1.(double) (Math.round(sd3*10000)/10000.0); 这样为保持4位 (double) (Math.round(sd3*100)/100.0); 这样为保持2位 ...