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

  • excel怎么把表格拉大(excel怎么把表格横竖调换)

    excel怎么把表格拉大(excel怎么把表格横竖调换)

  • 小米黑暗模式怎么开启(小米设置黑暗模式)

    小米黑暗模式怎么开启(小米设置黑暗模式)

  • 淘宝违规怎么恢复健康(淘宝违规怎么恢复正常)

    淘宝违规怎么恢复健康(淘宝违规怎么恢复正常)

  • 更换手机号码需要注意哪些问题(更换手机号码需要更改哪些信息)

    更换手机号码需要注意哪些问题(更换手机号码需要更改哪些信息)

  • sim卡号激活输入哪几位(号码卡激活怎么输入imsi)

    sim卡号激活输入哪几位(号码卡激活怎么输入imsi)

  • ipad qq语音通话怎么静音(ipad qq语音通话声音太大)

    ipad qq语音通话怎么静音(ipad qq语音通话声音太大)

  • b站电视大会员是什么

    b站电视大会员是什么

  • 荣耀20运行内存怎么查看(荣耀20运行内存显示方法)

    荣耀20运行内存怎么查看(荣耀20运行内存显示方法)

  • 华为四核路由器发热好严重啊(华为四核路由器5200价格)

    华为四核路由器发热好严重啊(华为四核路由器5200价格)

  • 快手上什么叫通过私信添加(快手上什么叫通讯录)

    快手上什么叫通过私信添加(快手上什么叫通讯录)

  • 充电器发热还能继续充电吗(充电器发热对充电器有影响吗)

    充电器发热还能继续充电吗(充电器发热对充电器有影响吗)

  • 苹果售后保修标准(iphone售后保修)

    苹果售后保修标准(iphone售后保修)

  • 华为p30支持双微信吗(华为p30支持双频wifi吗)

    华为p30支持双微信吗(华为p30支持双频wifi吗)

  • 怎么取消qq预设上限(qq预约怎么取消)

    怎么取消qq预设上限(qq预约怎么取消)

  • 手机怎样隐藏文件夹(手机怎样隐藏文字)

    手机怎样隐藏文件夹(手机怎样隐藏文字)

  • 手机位置信息是否打开(手机位置信息是干嘛的)

    手机位置信息是否打开(手机位置信息是干嘛的)

  • 手机怎么取消sos(手机怎么取消SOS)

    手机怎么取消sos(手机怎么取消SOS)

  • 三星s6手机发布时间(三星s6手机发布价格表)

    三星s6手机发布时间(三星s6手机发布价格表)

  • 苹果手机需要清理垃圾吗(苹果手机需要清理病毒吗)

    苹果手机需要清理垃圾吗(苹果手机需要清理病毒吗)

  • 喜马拉雅怎么设置定时(喜马拉雅怎么设置顺序播放)

    喜马拉雅怎么设置定时(喜马拉雅怎么设置顺序播放)

  • 吉信通是什么东西(吉信通短信)

    吉信通是什么东西(吉信通短信)

  • 小米8怎么设置隐藏视频(小米8怎么设置指纹)

    小米8怎么设置隐藏视频(小米8怎么设置指纹)

  • 为什么微信电话接不到(为什么微信电话扬声器打不开)

    为什么微信电话接不到(为什么微信电话扬声器打不开)

  • 华为鸿蒙开发官方解答:HarmonyOS Connect“碰一碰”出现问题怎么解决(华为鸿蒙系统开发平台)

    华为鸿蒙开发官方解答:HarmonyOS Connect“碰一碰”出现问题怎么解决(华为鸿蒙系统开发平台)

  • 系统设置中有一些多余的自动播放设备(有一个设置)

    系统设置中有一些多余的自动播放设备(有一个设置)

  • Vue3配置路由(vue-router)(vue路由使用方法)

    Vue3配置路由(vue-router)(vue路由使用方法)

  • JS入门到精通完整版(js快速入门教程)

    JS入门到精通完整版(js快速入门教程)

  • 房产税计税依据是什么
  • 差额征税的税率怎么计算
  • 纳税人识别号在哪里能查到
  • 免征增值税和增值税区别
  • 出口货物离岸价格
  • 企业所得税包含哪些税种
  • 报关时电子口岸电子委托应该什么时候做
  • 进项税转出主要内容包括
  • 普票冲红原票要退回吗
  • 现金盘亏无法查明原因计入什么科目
  • 存货报废需要进项转出吗
  • 残疾人一次性奖金
  • 货物所有权转移制度研究
  • 企业购置节能节水专用设备
  • 以资抵债是利空还是利好
  • 固定资产抵扣新政策2022
  • 17税点变更成16税点
  • 股权转让后没有给转让费怎么办
  • 税目与应纳税额的关系
  • 认缴制的期限是多久
  • 企业支付水电费属于什么费用
  • 可持续增长率计算例题
  • 增值税普通发票和专用发票有什么区别
  • 汽车展厅布置需要什么
  • 委托代付工程款会计分录
  • office com组件修复
  • 如何选购餐桌椅
  • php操作redis
  • 税控盘每年的服务费可以抵扣吗
  • 生产成本制造费用怎么算
  • framework怎么用
  • 酒店购买天然气流程
  • 资产等于负债加所有者权益
  • sql数据库语句基本语法
  • 其他应付款清账
  • 小程序从入门到精通
  • 前端等比例缩放
  • phpcms怎么用
  • mongodb的安装过程和操作命令
  • phpcms 标签
  • 小规模纳税人免增值税的账务处理
  • 出口货物不能退税的账务处理
  • 其他应付款包括应付股利和应付利息吗
  • 账面成本与账面余额
  • 应收款为负数怎么理解这个概念
  • 增值税专用发票几个点
  • 纳税人增值税专用发票票面价税合计最多开多少金额
  • 企业所得税汇算清缴会计分录
  • 个人劳务报酬所得税税率表
  • 资产负债表没有
  • 钢管租赁怎么算的
  • 房屋租赁不开发票需要交税吗
  • 公司名下汽车过户个人需要补税吗
  • 其他应付款长期挂账几年必须转收入
  • 暂估成本分录怎么写
  • 残疾人就业保障金会计分录怎么做
  • 疫情防控重点保障物资生产企业可以按月
  • 加计减免其他收入怎么填
  • 国税局个人所得税怎么申报
  • 社会保险费计提分录
  • 季度盈利弥补以前年度亏损的账务处理
  • qpso算法
  • windows7手写功能
  • mac怎么更换用户名和密码
  • linux内核驱动开发书籍
  • linux0.12内核代码多少行
  • win7系统注册表文件损坏无法开机怎么修复
  • xp更改远程端口
  • win8.1 ie浏览器
  • python tcp socket
  • opengl1
  • js 阻止触发某个事件
  • Node.js中的全局变量有哪些
  • 如何修改安卓app的程序
  • python文本
  • [置顶]bilinovel
  • unity shader saturate
  • javascript post语法
  • 深圳税务 qzzn
  • 什么是非行政许可
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设