Spring(本质创建对象和组装对象思想)的一些小问题及解答

一 问题
1 控制反转ioc为程序开发带来的好处是什么?
    专心做事    减低程序代码之间的耦合度
面向切面编程的核心思想是什么?
简单的说就是在不改变原程序的基础上为代码段增加新的功能
Spring AOP的增强处理类型有哪些?
前置  后置 环绕 最终增强
4 简单工厂模式的作用是什么?如何实现?
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
作用是: 让对象的调用者与对象创建过程进行分离,当对象调用者需要对象时只需直接向工厂请求即可,
从而避免了对象调用者与对象实现类以硬编码方式进行耦合。

代理模式的作用是什么?如何实现?

是给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。






二 控制反转(IOC)/依赖注入
控制反转
    把以前创建对象和组建对象由内部完成转换为Spring完成 
将组件对象的控制权从代码本身转移到外部容器
目的:解耦合。实现每个组件时只关注组件内部的事情
要点:明确定义组件间的接口

依赖注入
组件化的思想:分离关注点,接口和实现分离
依赖的注入:将组件的构建和使用分开
面向接口的编程 优点? 
提高灵活性

目的:解耦合。实现每


三 面向切面编程


AOP的目标:让我们可以“专心做事”
AOP原理:
将复杂的需求分解出不同方面,将散布在系统中的公共功能集中解决
采用代理机制组装起来运行,在不改变原程序的基础上对代码段进行增强处理,增加新的功能

代理模式创建

1 植入给Biz的Dao是接口类型?
是接口类型
2 为什么Dao的Bean对象是代理模式?
因为它被植入了
3 Dao的Bean的代理对象生成的原理?
找出真实类的接口
生成代理类(用动态代理技术生成代理的类  配置文件中有bean  第二 aop里面匹配调用真实类的匹配方法)
使用代理类创建代理对象(调用真实对象的同名方法)
生成真实对象()
真实对象是代理对象内部的一个字段



植入的原理?
代理对象
前置植入代码
运行代码(真实类对象方法)
后置植入代码
切面表达式的内涵?
<aop:config>
        <aop:pointcut  id="loggerBeforePointcut" 
         expression="execution(public * cn.jbit.demo.dao.UserDaoImpl.saveUser(cn.jbit.demo.entity.User))"/>
         <!-- 前置 -->
        <aop:advisor advice-ref="loggerBefore"  pointcut-ref="loggerBeforePointcut" />
         <!-- 前置对象 -->
        <aop:advisor advice-ref="loggerAfterReturning"  pointcut-ref="loggerBeforePointcut" />
    </aop:config>
配置文件的aop:config
里面的<aop:pointcut id="" expression="execution(public * 包名.类名.方法名)"/>匹配所有的返回值  *匹配所有  (‘’)  匹配所有参数 可以有可以没有
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值