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

  • 荣耀magic3至臻版怎么分屏(荣耀magic3至臻版和magic4至臻版)

    荣耀magic3至臻版怎么分屏(荣耀magic3至臻版和magic4至臻版)

  • 朋友圈怎么只发文字,不带图片的(朋友圈怎么只发图片)

    朋友圈怎么只发文字,不带图片的(朋友圈怎么只发图片)

  • 电脑为什么开不了机(电脑为什么开不了机一直启动不起来)

    电脑为什么开不了机(电脑为什么开不了机一直启动不起来)

  • 手机微信视频超过5分钟怎么发给微信朋友(手机微信视频超大怎么办)

    手机微信视频超过5分钟怎么发给微信朋友(手机微信视频超大怎么办)

  • 1390手机号什么时候出来的(1390手机号是哪里的)

    1390手机号什么时候出来的(1390手机号是哪里的)

  • 8p有什么颜色的(8p什么颜色最受欢迎)

    8p有什么颜色的(8p什么颜色最受欢迎)

  • 微信收款音响s2和s3有什么区别(微信收款音响S1和F1的区别)

    微信收款音响s2和s3有什么区别(微信收款音响S1和F1的区别)

  • vivoiqoo pro上市时间(vivoiqoopro上市时间和价格)

    vivoiqoo pro上市时间(vivoiqoopro上市时间和价格)

  • 平板信号弱怎么解决(平板信号不稳定)

    平板信号弱怎么解决(平板信号不稳定)

  • 微信显示交易异常,不能收款,怎么办?(微信显示交易异常多久自动解除)

    微信显示交易异常,不能收款,怎么办?(微信显示交易异常多久自动解除)

  • 华为怎么共享热点网络连接(华为手机共享热点在哪里设置)

    华为怎么共享热点网络连接(华为手机共享热点在哪里设置)

  • a2124是苹果mini5吗(ipadminia2125是什么型号)

    a2124是苹果mini5吗(ipadminia2125是什么型号)

  • ipada1432是ipad几(ipada1432是几代,现在值多少钱?)

    ipada1432是ipad几(ipada1432是几代,现在值多少钱?)

  • 微信更换实名认证之前的还有记录吗(微信更换实名认证)

    微信更换实名认证之前的还有记录吗(微信更换实名认证)

  • 72mbps网速快还是慢(72mbps好还是433mbps好)

    72mbps网速快还是慢(72mbps好还是433mbps好)

  • 手机没有空间怎么办(手机没有空间怎么删也没有空间)

    手机没有空间怎么办(手机没有空间怎么删也没有空间)

  • 手机hd怎么关闭(oppoa32手机hd怎么关闭)

    手机hd怎么关闭(oppoa32手机hd怎么关闭)

  • 安卓隔空投送在哪里(安卓隔空投送app)

    安卓隔空投送在哪里(安卓隔空投送app)

  • 手机设置始终打开方式(手机设置什么功能会一直打不通?)

    手机设置始终打开方式(手机设置什么功能会一直打不通?)

  • 支付宝花呗怎么预约还款时间(支付宝花呗怎么套出现金)

    支付宝花呗怎么预约还款时间(支付宝花呗怎么套出现金)

  • 联系人停止运行怎样恢复(联系人停止运行怎么弄)

    联系人停止运行怎样恢复(联系人停止运行怎么弄)

  • 华为p30下面的虚拟按键怎么设置(华为p30下面的虚线是什么)

    华为p30下面的虚拟按键怎么设置(华为p30下面的虚线是什么)

  • 联发科p70是骁龙的哪个级别的处理器(联发科p70是5g吗)

    联发科p70是骁龙的哪个级别的处理器(联发科p70是5g吗)

  • 如何远程控制桌面?(远程怎么控制电脑)

    如何远程控制桌面?(远程怎么控制电脑)

  • 威尼斯海滩滑板公园鸟瞰图,洛杉矶 (© Ingus Kruklitis/Getty Images)(威尼斯海滩滑板场)

    威尼斯海滩滑板公园鸟瞰图,洛杉矶 (© Ingus Kruklitis/Getty Images)(威尼斯海滩滑板场)

  • 增值税普通发票几个点
  • 减免税款的会计分录在什么时候处理
  • 增值税专用发票使用规定 最新
  • 企业裁员补偿金标准是多少
  • 预付款可以抵扣进度款吗
  • 银行转账支付凭证有效期多久
  • 资产负债表递延收益
  • 工人工伤误工费赔偿多少一天
  • 生产设备的修理费用计入什么科目小企业
  • 超市送现金券怎么做账
  • 融资租赁出租人和承租人的区别
  • 开出现金支票属于什么会计科目类别
  • 混合销售如何做会计分录
  • 公司取得政府赔偿款要交增值税吗
  • 这个月发票领完了,还可以领吗?
  • 原材料总分类账怎么写
  • 业务宣传费和广告费计入什么科目
  • 固定资产替换公式
  • 收据换发票的会计分录
  • 利润表所得税费用为负数
  • 土地交易服务费分录
  • 公司个人所得税怎么申报
  • 纳税人享受增值服务
  • 其他应付款包括应付职工薪酬吗
  • 2018增值税暂行条例
  • 兼职劳务报酬要交个税吗
  • powershell不显示用户名
  • 手机网速测试怎么看多少兆网
  • 发工资扣的个人社保计入哪个科目
  • 公司员工私车公用协议要签吗
  • win10怎么自定义开机音乐
  • 纳税人如何申请延期缴纳税款
  • 应付票据到期怎么处理
  • win10 累积更新
  • 完税证明和纳税申报表的金额不一致
  • 迪格庄园阿拉扎尼河谷红葡萄酒750ml
  • DeepLabV3+:Mobilenetv2的改进以及浅层特征和深层特征的融合
  • 增值税纳税人兼营免税减税项目的
  • 前后端交互用什么技术
  • springboot比spring做了哪些改进
  • 接口多继承的写法
  • 房地产停车场属于公共配套设施吗
  • 查账征收利润50万交多少税
  • access微软
  • 小微企业增值税起征点是多少
  • 商业收入税收怎么收费
  • 营改增后的计税方式
  • 注册资金如何使用
  • 长期股权投资为什么不是金融资产
  • 计提缴纳企业所的会计分录怎么写
  • 收到货款没开票的会计分录怎么做
  • 查账征收个体户经营所得税怎么计算
  • 基金申购费的会计分录
  • 个税速算扣除数2023
  • 计提工资时个税挂其他应收款
  • 劳务公司 成本
  • 法人代表可以兼任出纳吗
  • 私企需要计提盈余公积吗
  • sql查询结果数量
  • windows已保护你的电脑,阻止你的应用
  • u盘安装win7系统教程图解
  • win7系统不能修改
  • windows7自带的画图软件在哪里打开
  • xp系统怎么设置不待机
  • Linux dpkg-query 命令用法详解(Debian Linux中软件包的查询工具)
  • win10搜索不到无线网卡
  • 如何教新手
  • 升级打装备的手游
  • linux服务器被尝试登录失败
  • js取二维数组数组的值
  • C# list多字段排序sort
  • JavaScript获取元素
  • Unity NGUI Tween的用法
  • bootstrap的组件
  • 别人给公司开的普票,怎么查询
  • 举报电话12345管用吗
  • 民办非营利医院所得税
  • 残疾人就业年审经办人
  • 税务稽查问题应对心得
  • 柴油增值税发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设