位置: IT常识 - 正文

SpringIOC和AOP介绍(spring的aoc和aop)

编辑:rootadmin
SpringIOC和AOP介绍 Spring介绍

推荐整理分享SpringIOC和AOP介绍(spring的aoc和aop),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:spring的ioc与aop,spring的aoc和aop,简述spring ioc和aop分别是什么,springioc和aop的原理,springioc和aop的理解,springioc和aop的原理,spring的aoc和aop,springioc和aop的理解,内容如对您有帮助,希望把文章链接给更多的朋友!

1.spring是轻量级的开源的JavaEE框架

2.Spring可以解决企业应用开发的复杂性

3.Spring有两个核心部分:IOC、AOP

​ (1)IOC:控制反转,把创建好的对象给Spring进行管理

​ (2)AOP:面向切面编程,不修改源代码的情况下进行功能增加。

Spring特点

1.方便解耦,简化开发。

2.AOP支持

3.方便程序测试

4.方便和其他框架整合

​ 6.降低了API开发难度

IOCIOC底层原理和基本概念

inversion for control 控制反转。把对象创建和对象之间的调用过程,交给spring进行管理。

使用目的:为了耦合度降低。

耦合度:也就是两个方法之间的关联程度,越小越好。

类似于图下,如果我去修改了UserDao中的add方法,那么Service层中的方法也需要去修改。 但是当我们去使用了工厂模式,就会去降低耦合度。

ioc接口 BeanFactory

​ 1、Ioc思想基于IOC容器完成,ioc就是对象工厂。

​ 2、spring提供ioc容器实现两种方式:(功能相似)

​ (1)**.beanFactory**:ioc容器基本实现,是spring自带 内部使用的,不提供给开发人员使用。

​ * 加载配置文件的时候,不会去创建对象。在获取对象(使用)才去创建对象。 什么时候用 什么时候创建对象。

(2)ApplicationContext:是BeanFactory接口的子接口,提供更强大的功能,由开发人员使用。

​ * 加载配置文件的时候,就会去创建对象。

常见的依赖注入三种方式1、set方法进行注入

(在bean中创建属性和创建set方法)

​ 1.创建类,生成属性的set方法

​ 2.在配置文件中创建对象,后使用set方法注入属性

 <bean id="book" class="com.cztu.tdj.spring5.Book">        <property name="bname" value="tdj"></property>        <property name="bauthor" value="javaSpring"></property>    </bean>2、使用有参构造进行注入

(1)创建类,定义属性,创建属性的有参构造

(2)在spring的配置文件中注入

    <bean id="orders" class="com.cztu.tdj.spring5.Orders">        <constructor-arg name="oname" value="拼多多"></constructor-arg>        <constructor-arg name="address" value="120"></constructor-arg>                //也可以基于index属性注入,0代表有参构造第一个属性        <constructor-arg index=1 value="120"></constructor-arg>    </bean>SpringIOC和AOP介绍(spring的aoc和aop)

使用注解test时,类必须为public,方法也必须是public!!!

3、p名称空间注入

(1)使用p名称空间注入,可以简化基于xml配置方式

1添加p名称空间在配置文件中      xmlns:p="http://www.springframework.org/schema/p"2使用set方法注入<bean id="book" class="com.cztu.tdj.spring5.Book" p:bauthor="汤冬江" p:bname="javapy"/>Bean管理(FactoryBean)

1、Spring有两种类型Bean,一中普通bean,还有一种是工厂bean。

2.普通bean:在配置文件中,定义的类型就是返回的类型。**

3.工厂bean:在配置文件中,定义的类型可以和返回类型不一样。

bean作用域:

prototype、singleton、session、request

singleton 和prototype区别:

(1)singleton是单实例,prototype 是多实例对象

(2)设置scpe值为singleton时,加载spring配置文件时会创建单实例对象。

(3)设置scpe值为prototype时,不是加载spring配置文件时会创建实例对象,而是用getBean时才去创建对象

Spring针对bean管理中创建对象提供注解**

(1)@Component

(2)@Service

(3)@controller

(4)@Repository

功能一样,都是创建bean实例。但是他们用到不同地方。

AOP

AOP:面向切面编程 。不通过修改源代码的方式,在主干功能里添加新功能。

aop底层原理

1、aop底层使用了动态代理

(1)有两种情况的动态代理:

​ 1、有接口的情况,使用jdk动态代理

​ ·创建接口实现类对象,去增强类中的方法

2、没有接口的情况,使用CGLIB动态代理

​ 创建子类的代理对象,去增强类中的方法

aop动态代理实现(jdk)

1、使用jdk动态代理,使用Proxy类里的方法创建代理对象

newProxyInstance其中的三个参数:(1)类加载器;(2)增强方法的所在类,这个类实现的接口,支持多个接口;(3)实现这个接口InvocationHandler,创建代理对象,写增强的方法

2、jdk动态代理代码

(1)创建接口,定义方法

(2)创建接口实现类,实现方法

(3)使用proxy类c

基于匿名内部类实现接口;

本文链接地址:https://www.jiuchutong.com/zhishi/300270.html 转载请保留说明!

上一篇:JS实现数组去重的八种方法(实用)(js 数组去重的四种方法)

下一篇:网页制作基础学习——HTML+CSS常用代码(网页制作零基础教程)

  • 控股股东无偿捐赠
  • 监理公司成本核算方法
  • 业务收入和营业收入关系
  • 开票服务费全额抵扣分录
  • 眼镜所属行业怎么填写
  • 房地产简易征收可以开专用发票吗
  • 营业税金及附加包括增值税吗
  • 化工原材料销售挣钱吗
  • 货物无偿赠送分录
  • 费用发票已报销怎么入账
  • 冲账其他应付款
  • 车辆的鉴定评估方法
  • 金税盘抵减增值税的账务处理
  • 收到促销商品怎么做分录
  • 租赁厂房发生的改造装修费用
  • 开给个人的普票怎么做分录
  • 劳务分包异地用预缴税款吗?
  • 个体工商户给员工交社保流程
  • 废旧物资增值税税收优惠政策
  • 公司委托法人代收款
  • 手工发票何时停止使用的
  • 企业应付账款管理优化方案设计
  • 企业所得税和进项的关系
  • 留用员工培训费怎么入账
  • 企业所得表怎么填写
  • 债券回购的含义和种类
  • 存货跌价准备可以转回吗?
  • 本期填写的适用3减1政策的本期发生额大于
  • 非经营性单位支出费用是什么
  • 应付票据贴现息计入
  • 知识产权?
  • kb4586853更新
  • php中字符串函数
  • 暂估入库结转成本后期怎么冲账
  • 苹果手机屏幕旋转怎么设置关闭
  • 不属于职工福利费的是抚恤费
  • 转让专利权的会计处理结果
  • php标识符
  • 红字发票开具后蓝字发票开具时限的问题
  • 如何开增值税专用发票步骤图解
  • 房地产企业以房产对外投资需要交什么税
  • 收到金融服务费怎么转账给别人
  • 网络技术公司技能培训
  • centos从命令行进入图形
  • 亏损弥补政策
  • clock set命令
  • 对附属单位补助的资金性质是财政预算资金
  • 信托保障基金怎么赎回
  • 增值税发票货物名称要求
  • sql server备份数据还原不了怎么办
  • 技术服务收入属于什么收入
  • 分期收款方式确认收入的时间
  • MySQL 5.7 create VIEW or FUNCTION or PROCEDURE
  • 银行余额调节表的作用
  • 融资租赁期间的维修费由谁承担
  • 人力资源行业企业成长
  • 合理损耗应计入成本吗
  • 工会经费到底是什么
  • 制造费用工资计入什么科目
  • 私人账户可以打钱到公司账户吗
  • 银行日记账更正
  • 计提员工工资是什么意思
  • 公司借调人员工资账务处理
  • 净现值率和现值指数与净现值什么时候它们评价结果一致
  • 什么是建账?建账的基本程序是什么?
  • 获取sqlsession
  • win7 组织
  • windows8自动更新卡住了怎么办
  • jucheck.exe是什么
  • win8系统升级到win10东西还在吗
  • win7弹出cmd窗口瞬间消失
  • cocos2d开发的知名游戏
  • 图形学实验报告总结
  • 很不错的词语
  • javascript()
  • jq写css样式
  • python中模块的作用
  • jquery怎么设置样式
  • 税务局周末上班没
  • 国税工作人员工资标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设