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

  • opporeno6pro电池容量(opporeno6pro+电池容量多大)

    opporeno6pro电池容量(opporeno6pro+电池容量多大)

  • QQ浏览器文件怎么把图片导入(qq浏览器文件怎么查找关键字)

    QQ浏览器文件怎么把图片导入(qq浏览器文件怎么查找关键字)

  • 小米蓝牙耳机air2怎么连不上(小米蓝牙耳机airdots青春版)

    小米蓝牙耳机air2怎么连不上(小米蓝牙耳机airdots青春版)

  • 快手pro是什么意思啊(快手pb是什么意思)

    快手pro是什么意思啊(快手pb是什么意思)

  • 电脑充电时充电器很烫正常吗(电脑充电时充电器发热很烫 什么原因)

    电脑充电时充电器很烫正常吗(电脑充电时充电器发热很烫 什么原因)

  • 普通qq群上限是多少人

    普通qq群上限是多少人

  • 微信私聊腾讯保存期限(微信私聊腾讯保险可靠吗)

    微信私聊腾讯保存期限(微信私聊腾讯保险可靠吗)

  • 淘宝直播挂机多久禁播(淘宝直播挂机情节一般a6)

    淘宝直播挂机多久禁播(淘宝直播挂机情节一般a6)

  • qq赞资料卡是什么意思(qq赞资料卡有什么用)

    qq赞资料卡是什么意思(qq赞资料卡有什么用)

  • 拼多多拼单成功后退款另一方怎么办(拼多多拼单成功后怎么取消订单)

    拼多多拼单成功后退款另一方怎么办(拼多多拼单成功后怎么取消订单)

  • 电力猫和子母路由区别(电力猫跟路由器怎么接)

    电力猫和子母路由区别(电力猫跟路由器怎么接)

  • 关系规范化中的删除操作异常是指(关系规范化中的操作异常有哪些)

    关系规范化中的删除操作异常是指(关系规范化中的操作异常有哪些)

  • airpods充电线是什么接口(airpods充电线是什么)

    airpods充电线是什么接口(airpods充电线是什么)

  • 手机有hd图标怎样去除(手机hd图标怎么打开)

    手机有hd图标怎样去除(手机hd图标怎么打开)

  • 手机闪屏打不开怎么办(手机闪屏打不开屏幕)

    手机闪屏打不开怎么办(手机闪屏打不开屏幕)

  • excel2010图表向导在哪(excel图表向导在哪里)

    excel2010图表向导在哪(excel图表向导在哪里)

  • 在抖音上开店步骤(抖音开店铺需要什么步骤)

    在抖音上开店步骤(抖音开店铺需要什么步骤)

  • 快手私信怎么彻底删没(快手私信怎么彻底删除掉)

    快手私信怎么彻底删没(快手私信怎么彻底删除掉)

  • 表格页面设置怎么设置(表格页面设置怎么设置页码变成几千页)

    表格页面设置怎么设置(表格页面设置怎么设置页码变成几千页)

  • qq占用内存太大了怎么办(qq占用内存太大怎么设置)

    qq占用内存太大了怎么办(qq占用内存太大怎么设置)

  • 华为p30有智能语音吗(华为p30智能语音从哪里召唤)

    华为p30有智能语音吗(华为p30智能语音从哪里召唤)

  • 公交车用手机怎么支付(公交车用手机怎么交费)

    公交车用手机怎么支付(公交车用手机怎么交费)

  • removed.exe - removed是什么进程 有什么用

    removed.exe - removed是什么进程 有什么用

  • 小规模缴纳增值税
  • 营业执照是怎么样子的
  • 主营业务成本的数据从哪里来的
  • 核定征收一般纳什么税
  • 企业股东分红可以不按比例分吗
  • 个体工商户旅馆怎么交税
  • 项目固定资产投资强度
  • 政府扶持企业资金要交税吗
  • 为了贷款支付的土地评估费用怎么会计处理?
  • 子公司注销是利空吗
  • 企业外购固定资产的成本包括购买价款和相关税费
  • 小规模企业发票跨月可以作废吗?
  • 业务宣传费超出部分以后年度怎样处理
  • 周转材料摊销属于什么费用
  • 没交社保能扣工伤保险吗
  • 会计人员必备的知识和技能
  • 公司为什么要成立工会委员会
  • 各税种会计分录
  • 消防改造费用
  • 公司零报税需要会计吗
  • 建筑业可以开电费发票吗
  • 其他债券投资出售时交易费用
  • 4s店修车送保养
  • 减免的附加税要计税吗
  • win11如何更改开始菜单位置
  • macOS 11.0.1(20B29)更新了什么?macOS Big Sur 11.0.1(20B29)更新详解
  • 预付账款和应付账款怎么调账
  • 王者荣耀中刘邦技能解析以及如何连招
  • linux服务器nfs安装
  • 注册表被恶意锁定怎么恢复正常
  • ipad哪款最贵
  • 车辆赔偿款收条怎么写
  • 融资租赁怎么做到表外
  • mxnet github
  • thinkphp 多数据库
  • php数组数据结构
  • Android 10.0 framework中关于Activitity的生命周期的源码讲解
  • 小规模企业收到发票
  • python stream模块
  • 中国版ChatGPT即将来袭-国内版ChatGPT入口
  • 社会团体税收政策
  • 招待费的进项税必须认证后转出吗
  • 申报完清卡是什么意思
  • 个人所得税经营所得
  • 残疾人就业保障金申报时间
  • 建筑公司劳务发票
  • 发票金额大于付款金额怎么做分录
  • phpcms默认密码
  • phpcms下载
  • 织梦会员功能
  • 收到货款的会计分录怎么做账
  • 个体户怎么网上变更法人
  • 发票的规格型号有字数限制吗
  • 农民工工资专户管理暂行办法
  • 金税盘要交税吗
  • 销售商品的运费的税费计入进项税额
  • 销售商品发生的运输费计入什么科目
  • 税控盘减免税款分录
  • 福利费税前扣除工资薪金包含哪些
  • 兼营即征即退产品 增值税
  • 租赁的初始直接费用有哪些
  • 先清卡后报税影响申报吗
  • 递延所得税资产账务处理
  • 增值税普通发票可以跨区域开吗
  • 年初建账考虑要点有哪些
  • ubuntu设置关闭按钮在右侧
  • 苹果电脑安装了双系统怎么恢复苹果系统
  • win8安全模式修复
  • windowsxp回收站实际是
  • Immutable 在 JavaScript 中的应用
  • Node.js中的核心模块包括哪些内容?
  • android实现天气预报
  • shell脚本引用文件
  • Android eclipse for mac redo 快捷键
  • python traits
  • 动态表单的设计与实现
  • 2023年新农合缴费
  • 安徽省低保查询入口官网
  • 中石化一键加油周几有优惠
  • 地税局公务员工作内容
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设