位置: 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常用代码(网页制作零基础教程)

  • 短视频营销的六种玩法(短视频营销的六个模式)

    短视频营销的六种玩法(短视频营销的六个模式)

  • 网易云听歌历史记录在哪里(网易云听歌历史数据)

    网易云听歌历史记录在哪里(网易云听歌历史数据)

  • 0x40000015怎么解决(0x0000024的处理方法)

    0x40000015怎么解决(0x0000024的处理方法)

  • iphonex双屏怎么设置(iphone x怎么一屏两用)

    iphonex双屏怎么设置(iphone x怎么一屏两用)

  • 微信怎么发满屏爱心(微信怎么发满屏下雨的爱心)

    微信怎么发满屏爱心(微信怎么发满屏下雨的爱心)

  • 改名定位是什么意思(改名定位是什么原理)

    改名定位是什么意思(改名定位是什么原理)

  • excel怎么隐藏不需要的部分(excel怎么隐藏不需要的行)

    excel怎么隐藏不需要的部分(excel怎么隐藏不需要的行)

  • 苹果11两个卡怎么放(苹果11两个卡怎么关机一个卡)

    苹果11两个卡怎么放(苹果11两个卡怎么关机一个卡)

  • 钢化膜影响触屏灵敏度吗(钢化膜是不是影响触屏速率)

    钢化膜影响触屏灵敏度吗(钢化膜是不是影响触屏速率)

  • 华为手表gt1有什么功能(华为手表新款watch gt1功能)

    华为手表gt1有什么功能(华为手表新款watch gt1功能)

  • iphonexsmax长宽高多少cm(iphonexsmax的长宽高)

    iphonexsmax长宽高多少cm(iphonexsmax的长宽高)

  • 手机卡突然变成无效卡了(手机卡突然变成E网了怎么回事)

    手机卡突然变成无效卡了(手机卡突然变成E网了怎么回事)

  • 网易云怎么搜索电台名字(网易云怎么搜索微信好友)

    网易云怎么搜索电台名字(网易云怎么搜索微信好友)

  • 对方账号封禁什么意思(对方账号已被禁封是怎么回事)

    对方账号封禁什么意思(对方账号已被禁封是怎么回事)

  • 苹果换过电池有影响吗(苹果换过电池有显示吗)

    苹果换过电池有影响吗(苹果换过电池有显示吗)

  • XR机身尺寸(xr机身尺寸和13一样吗)

    XR机身尺寸(xr机身尺寸和13一样吗)

  • 腾讯视频如何下载到手机(腾讯视频如何下载到u盘)

    腾讯视频如何下载到手机(腾讯视频如何下载到u盘)

  • 怎么在电脑上玩抖音(怎么在电脑上玩金铲铲)

    怎么在电脑上玩抖音(怎么在电脑上玩金铲铲)

  • 小米6快充多少w(小米6快充支持多少w)

    小米6快充多少w(小米6快充支持多少w)

  • 13.1.2更新了什么(13.0更新)

    13.1.2更新了什么(13.0更新)

  • 荣耀5手环能接电话吗(荣耀5手环可以接来电吗)

    荣耀5手环能接电话吗(荣耀5手环可以接来电吗)

  • 开机怎么进入pe系统(开机怎么进入pe系统传输文件到U盘)

    开机怎么进入pe系统(开机怎么进入pe系统传输文件到U盘)

  • 一加7pro用什么耳机(一加7pro用什么充电器)

    一加7pro用什么耳机(一加7pro用什么充电器)

  • win10计算机属性在哪里(win10计算机属性里面没有网络id按钮)

    win10计算机属性在哪里(win10计算机属性里面没有网络id按钮)

  • 华为nova5pro电池容量是多少(华为nova5pro电池不耐用怎么回事)

    华为nova5pro电池容量是多少(华为nova5pro电池不耐用怎么回事)

  • 开了移动网络为什么没网(开了移动网络为什么却用不了流量)

    开了移动网络为什么没网(开了移动网络为什么却用不了流量)

  • 宽带错误797怎么解决?(宽带错误797最简单解决方法)

    宽带错误797怎么解决?(宽带错误797最简单解决方法)

  • 个税里的本期收入扣不扣个人社保
  • 小规模纳税开专票享受季度30万纳税
  • 销售分哪几类
  • 缺少订单停工费用如何做账
  • 没有销售是什么意思
  • 做账时计提费用不含税怎么取整
  • 开票服务费全额抵扣分录
  • 佣金开什么发票
  • 技术服务企业会计思维导图
  • 二手车买卖如何交税
  • 铸造厂的销售废料有哪些
  • 行政单位待处理财产损益要结转吗
  • 股东分红利息
  • 商场采用联营方式的原因
  • 支付各种办公费用
  • 公司账户没有钱怎么办
  • 厂家核销费用直接抵扣
  • 增值税实际缴纳总额
  • 办理出口退税需要的资料
  • 当月工资补扣个税吗
  • 处置无形资产净收益
  • 在会计实务中财务报表附注的披露方法不包括
  • 存货缺货成本如何算
  • 加工费计入应付账款可以吗
  • 外购商品领用会计分录
  • 培训费和差旅费可以一起报嘛
  • 投资性房地产企业有哪些
  • 如何增强无线网卡的接收能力
  • 固定资产残值率计算公式
  • 小规模纳税人无票收入免税吗
  • phpget方法
  • 闲置房的相关政策
  • 企业购入软件会计分录
  • 北极光下的众神图片
  • 爬坑图片卡通
  • python编程100例
  • php7匿名函数
  • 管家婆软件如何做账
  • 调整价格差额计算应采用
  • phpcms怎么样
  • 其他综合收益属于什么类
  • 银行汇票和银行承兑汇票的区别
  • php命令行模式
  • 短期借款属于经营活动还是筹资活动
  • 实收资本可以用于偿还借款
  • 社保滞纳金所得税
  • 企业特殊工种不备案可以补报备吗
  • 医药发票的税率是多少
  • 现金日记账余额自动生成公式
  • 收到服务费发票可以计入什么科目
  • 检测公司成本科目
  • 员工奖励的现金有哪些
  • 借款后的报销流程怎么写
  • 电子承兑汇票到期网银上怎么操作
  • 固定资产税法折旧年限规定
  • 民间非营利组织会计制度及操作实务
  • 成品油 规定
  • Linux平台mysql开启远程登录
  • centos7 home
  • bios如何进去
  • win10系统预览版
  • xp系统个性化
  • MAC OS X Yosemite开启深色模式的方法
  • drvceox86.exe
  • 如何在win7系统中查看电脑基本信息
  • win10系统以太网连接图标不见了怎么办
  • nginx react
  • nodejs不再维护
  • python如何发送http请求
  • js中判断
  • jquery找父级
  • flask框架下使用scrapy框架
  • 成都市地方税务局 组织税收收入 2010
  • 高铁票抵扣进项能抵扣吗
  • 国家税务总局办税指南
  • 云阅卷平台登录入口云南省
  • 小规模纳税人一年开票额度是多少
  • 税务登记证用来干嘛
  • 计提消费税的会计分录讲解
  • 瑞典交税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设