sping 03--21

1、请简述IoC原理
IoC也称为DI(依赖注入),是面向对象编程中的一种设计理念。
代码中不再主动创建对象,而是将创建对象交给外部容器去完成,并且将创建好的对象注入
进来完成组装。

2、请简述AOP原理
AOP是在代理模式的基础上,通过配置文件在运行时以动态代理的形式织入增强处理的功能
的一种编程方式。

3、IoC属性注入有哪几种方式?
IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转
什么是控制反转?
控制反转是一种将组件依赖关系的创建和管理置于程序外部的技术。
由容器控制程序之间的关系,而不是由代码直接控制
由于控制权由代码转向了容器,所以称为反转
    接口注入
    Setter 注入
    构造器注入
 三种依赖注入方式的比较 :
接口注入:
接口注入模式因为历史较为悠久,在很多容器中都已经得到应用。但由于其在灵活性、易用性上不如其他两种注入模式,因而在 IOC 的专题世界内并不被看好。

Setter 注入:
对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。
如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。
如果用到了第三方类库,可能要求我们的组件提供一个默认的构造函数,此时构造子注入模式也不适用。

构造器注入:
在构造期间完成一个完整的、合法的对象。
所有依赖关系在构造函数中集中呈现。
依赖关系在构造时由容器一次性设定,组件被创建之后一直处于相对“不变”的稳定状态。
只有组件的创建者关心其内部依赖关系,对调用者而言,该依赖关系处于“黑盒”之中。

4、增强处理有哪几种类型?

(1)前置增强:实现MethodBeforeAdvice接口
(2)后置增强:实现AfterReturningAdvice接口
(3)最终增强:实现AfterAdvice接口
(4)异常增强:实现ThrowsAdvice接口
(5)环绕增强:实现MethodInterceptor接口
     环绕增强处理包含以上四种增强功能之外,还包含如下功能:
     a)控制是否调用目标对象的方法
     b)修改返回值

5、代理模式的要点是什么?
(1)代理对象和真实对象有共同的接口(实现相同的Java接口、继承共同的抽象类、代理
类继承真实类)
(2)代理对象内部持有真实对象的引用
(3)在调用真实对象的方法之前或之后增加功能(增强处理)

时间: 2024-10-27 02:14:26

sping 03--21的相关文章

深入浅出WPF--笔记(2015.03.21)

RoutedEventArgs有两个属性:OriginalSource和Source,这两个属性都表示路由事件传递的起点(即事件消息的源头),OriginalSource表示VisualTree上的源头,而Source表示的是LogicalTree上的消息源头.事例如下: XAML代码: <UserControl x:Class="MyTest.MyUserControl"             xmlns="http://schemas.microsoft.com/

Java时间日期格式转换 转自:http://www.cnblogs.com/edwardlauxh/archive/2010/03/21/1918615.html

Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateForma

2019.03.21 admin

1.新建文件创建一个应用类 stu Python manage.py startapp stu 2,创建应用类 记得在setting中的installed_apps中添加应用 student/models.py中创建Stu模型类   写下自己需要的字段名   # -*- coding: utf-8 -*-   from __future__ import unicode_literals       from django.db import models       # Create your

AJPFX平台:03.21日内交易策略

AJPFX恒指: 恒指上个交易日走势上冲到上方最高点是29630,下方跌到最低点位是29261.昨天整体趋势偏空震荡,晚间尾盘直接跌下百点,昨日美股涨跌不一,道指收跌逾140点,银行股领跌.导致恒指进行空头调整,目前日线上看, K线昨日收线收了根上影线稍长的阴线,收于均线上方位置.均线还是往上提着走,补助指标KDJ往下拐,要形成死叉.MACD重合,能量柱出现蓝柱子.今日恒指整体趋势偏空概率较大,交易上,上方注意的点位是29370,29500.下方注意的点位是29000,28735. 恒指1小时K

2020.03.21 JOI春令营&amp;A组 总结

唉,把最近的情况都总结一下. 昨天(3.20)做了JOI春令营DAY1,13分,赛后改了T1,成102分 今天早上想DAY2想到了11:50,弃疗滚回A组,打T2没有调试成功. 所以我也不知道该怎么什么了... 先说说昨晚上的吧. T1有\(2n\)个位置,每个位置两种选择,\(a[i]\) \(or\) \(b[i]\) 对于\(a\)和\(b\)各选\(n\)个位置,使得选出来的是不递减的序列.输出任意方案. 我们可以想到\(n^2\)暴力,接下来我们发现对于当前位置\(i\)可以有一个上下

JavaSE学习总结第03天_Java基础语法2

03.01 数据类型中补充的几个小问题 1:在定义Long或者Float类型变量的时候,要加L或者f.   整数默认是int类型,浮点数默认是double.   byte,short在定义的时候,他们接收的其实是一个int类型的值.  2:数据类型转换之默认转换:byte,short,char→int→long→float→double    为什么占用8个字节的long默认转换为4个字节的float?    A:它们底层的存储结构不同.    B:float表示的数据范围比long的范围要大

黑马程序员_JavaSE学习总结第03天_Java基础语法2

------- android培训.java培训.期待与您交流! ---------- 03.01 数据类型中补充的几个小问题 1:在定义Long或者Float类型变量的时候,要加L或者f.   整数默认是int类型,浮点数默认是double.   byte,short在定义的时候,他们接收的其实是一个int类型的值.  2:数据类型转换之默认转换:byte,short,char→int→long→float→double    为什么占用8个字节的long默认转换为4个字节的float?   

Centos7系统编译安装Mysql5.7.21

环境说明 : centos7.4 64位虚拟机 mysql5.7.21.tar.gz 编译安装需要虚拟机2G内存 [[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 安装步骤如下: 1.安装依赖包: yum -y install gcc gcc-c++

【夯实基础】Spring在ssh中的作用

尊重版权:http://blog.csdn.net/qjlsharp/archive/2009/03/21/4013255.aspx 写的真不错. 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)

Tengine环境安装

访问网址:http://tengine.taobao.org/download_cn.html下载需要的版本 第一步,解压 第二步.安装tegine 编译库 gcc, zlib1g-dev, libpcre3, libpcre3-dev这些库文件是必须的,会没办法编译tegine ubuntu安装命令: apt-get install gcc libpcre3 libpcre3-dev zlib1g-dev 第三步.编译安装 或参考http://tengine.taobao.org/docume