文档章节

spring ioc 和 aop-----一些小结

bosscheng
 bosscheng
发布于 2013/05/22 15:54
字数 441
阅读 27
收藏 0

话说,学习spring也快大半年了,写业务层代码也写了半年之久了,对于spring中的一些核心技术现在还是似懂非懂的,很是纠结啊。。。

最近一直看别人写的对于这一块的理解,于是乎,我有点懂了。

首先来谈谈什么是Ioc(Inversion of controler,控制反转)

基本的java思想:Java程序中的每个业务逻辑至少需要两个或者以上的对象来协作完成、通常,每一个对象在使用他的合作对象的时候,自己均要使用像new.object()这样的语句来完成合作对象的申请。这样对象之间的耦合度很高。

而Ioc的思想是:spring容器来实现这些相互依赖对象的创建,协调工作。对象只需要关系业务逻辑本身就可以了。这样的话,对象如何得到他的合作对象的责任就被反转了。

Ioc的一个重点是在系统运行中,动态的向某个对象提供他们所需要的对象。这一点是通过DI(dependency injection,依赖注入);来实现的。

对于实现依赖注入,就需要用到java1.4之后的的新特性-反射(reflection),他允许程序在运行的时候动态的生成对象,执行对象的方法,改变对象的属性,spring正是通过这一特性来实现注入的。


再来看看AOP(Aspect Oriented Programing)-面向切面编程呢?

首先看看学习AOP之前需要了解的术语

  • 连接点(jointPoint)

  • 切点(pointCut)

  • 增强(advice)

  • 目标对象(target)

  • 引介(introduction)

  • 代理(proxy)

  • 切面(aspect)

AOP的实现者

  • AspectJ

  • AspectWerkz

  • JBoss AOP

  • spring AOP




© 著作权归作者所有

共有 人打赏支持
bosscheng
粉丝 79
博文 299
码字总数 91232
作品 0
南京
前端工程师
那些年,我们一起追的Spring

学无止境,但仍需及时总结。 自去年开始写作以来,写了一些关于Spring的文章,今天将它们汇总起来,一方面方便大家阅读,另一方面,也是一次小的复盘总结。 IOC 首先是Spring的IOC,也就是控...

SexyCode
08/14
0
0
spring中的AOP与IOC

在J2EE的整个发展历程中,现在正是一个非常时刻。从很多方面来说,J2EE都是一个伟大的成功:它成功地在从前没有标准的地方建立了标准;大大提升了企业级软件的开放程度,并且得到了整个行业和...

Sandy_wu
2013/06/08
0
0
Spring归纳小结

前言 如果说有什么框架是Java程序员必然会学习、使用到的,那么Spring肯定是其中之一。本篇博客,将根据博主在日常工作中对Spring的使用做一个系统的归纳小结。 Spring的一些概念和思想 Spri...

张丰哲
2017/10/06
0
0
Spring中的AOP(二)——AOP基本概念和Spring对AOP的支持

AOP的基本概念 AOP从运行的角度考虑程序的流程,提取业务处理过程的切面。AOP面向的是程序运行中的各个步骤,希望以更好的方式来组合业务逻辑的各个步骤。AOP框架并不与特定的代码耦合,AOP...

摆渡者
2014/03/17
0
3
对Spring的IoC和DI最生动的解释

1、Spring IOC IoC与DI 首先想说说IoC(Inversionof Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系...

Oscarfff
2015/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
6
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
4
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部