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

  • 苹果手机该如何升级内存(苹果手机该如何通过电脑把电话号码)

    苹果手机该如何升级内存(苹果手机该如何通过电脑把电话号码)

  • 华为荣耀10青春版是什么型号(华为荣耀10青春版拆机视频)

    华为荣耀10青春版是什么型号(华为荣耀10青春版拆机视频)

  • 如何增加手机声音(怎么增加手机音量?)

    如何增加手机声音(怎么增加手机音量?)

  • oppo用一会就发烫怎么办(oppo手机一用就发烫怎么回事)

    oppo用一会就发烫怎么办(oppo手机一用就发烫怎么回事)

  • 入选洋淘买家秀有什么用(洋淘买家秀有佣金吗)

    入选洋淘买家秀有什么用(洋淘买家秀有佣金吗)

  • bilibili转正会员有什么用(哔哩哔哩转正会员在哪)

    bilibili转正会员有什么用(哔哩哔哩转正会员在哪)

  • 抖音用微信登录授权在哪里(抖音用微信登录不了,未获得权限没有绑定微信)

    抖音用微信登录授权在哪里(抖音用微信登录不了,未获得权限没有绑定微信)

  • 为什么抖音只能发59秒视频(为什么抖音只能支付宝支付不能微信支付)

    为什么抖音只能发59秒视频(为什么抖音只能支付宝支付不能微信支付)

  • 微信扣费限额(微信扣费限额最低是200元吗)

    微信扣费限额(微信扣费限额最低是200元吗)

  • k30pro微距怎么打开(k30 pro 微距)

    k30pro微距怎么打开(k30 pro 微距)

  • 抖音不认证能上热门吗(抖音不认证能上团购吗)

    抖音不认证能上热门吗(抖音不认证能上团购吗)

  • 企鹅tv和腾讯视频会员可以通用吗

    企鹅tv和腾讯视频会员可以通用吗

  • oracle初始用户名(oracle的初始密码)

    oracle初始用户名(oracle的初始密码)

  • cpu后面的数字和字母是什么意思(cpu后面的数字怎么看)

    cpu后面的数字和字母是什么意思(cpu后面的数字怎么看)

  • 小米8怎么调时间(小米8怎么调时间显示)

    小米8怎么调时间(小米8怎么调时间显示)

  • 徕卡双摄像头什么意思(徕卡双a)

    徕卡双摄像头什么意思(徕卡双a)

  • 手机QQ浏览器怎么编辑文件(手机qq浏览器怎么缩小页面比例)

    手机QQ浏览器怎么编辑文件(手机qq浏览器怎么缩小页面比例)

  • 手机视频太多怎么保存(手机视频太多怎么存网上)

    手机视频太多怎么保存(手机视频太多怎么存网上)

  • 苹果8怎么关闭自拍镜像(苹果8怎么关闭自动亮度)

    苹果8怎么关闭自拍镜像(苹果8怎么关闭自动亮度)

  • 苹果mt762ch/a是什么型号(苹果mt752ch/a和mt762ch/a区别)

    苹果mt762ch/a是什么型号(苹果mt752ch/a和mt762ch/a区别)

  • 苹果账户在app和itunes中被禁用(苹果账户在app和itunes中被锁定怎么办)

    苹果账户在app和itunes中被禁用(苹果账户在app和itunes中被锁定怎么办)

  • 怎么关闭qq小程序功能(怎么关闭qq小程序游戏功能)

    怎么关闭qq小程序功能(怎么关闭qq小程序游戏功能)

  • “和平之墙”和巴黎的埃菲尔铁塔 (© Prisma by Dukas Presseagentur GmbH/Alamy)(和平之城)

    “和平之墙”和巴黎的埃菲尔铁塔 (© Prisma by Dukas Presseagentur GmbH/Alamy)(和平之城)

  • 反避税定义
  • 小规模零税率申报流程
  • 用友项目核算科目的项目不能为空
  • 行程单发票抬头是什么意思
  • 预收账款借方余额可以计入应收账款的哪方
  • 股份公司要实缴
  • 非财政拨款结余是什么科目
  • 非居民企业所得税核定利润率
  • 2023年企业退休职工取暖费
  • 没有收入要做应交税费的会计分录
  • 房地产分期开发的标准
  • 中央空调可一次开多少度
  • 支付运费价税合计
  • 地税局开票需要什么资料
  • 财税〔2017〕39号商业健康保险个人所得税
  • 冲红发票还能二次冲红吗
  • 公司购买的汽车可以一次性扣除吗
  • 开票的时候开票人是管理员
  • 款已付发票未到怎么做结转成本
  • 个税起征点是
  • 苹果macmimi
  • 逆流交易合并报表调整少数损益
  • 自己使用过的固定资产和旧货有什么区别
  • 企业报税流程图
  • 代扣代缴的增值税可以作为进项税抵扣吗
  • 财政总预算会计科目
  • php基础入门教程
  • 银行转账手续费最高多少钱
  • vue框架教程视频
  • 银行代发工资当天改工资卡来得及吗
  • 未分配利润为负数怎么调整
  • 自然人三方协议支付宝怎么处理
  • 金融企业往来支出是一级科目吗
  • 银行汇票和银行承兑汇票的区别
  • 民间非营利组织会计制度
  • 税务维护费抵扣分录
  • mongodb数据库教程
  • mongodb主键
  • mongodb基本操作命令
  • 购物赠品的处理流程
  • 增值税进项加计抵减怎么计算
  • 关联方计提坏账准备如何规定
  • 企业所得税报表查询怎么查
  • 处置固定资产亏损,增值税所得税申报不一至情况说明
  • 销售折让怎么写分录
  • 员工加班餐费算什么费用
  • 公司购买床垫如何做账
  • 企业办公楼房产税如何征收
  • 汽车价外费用
  • 从银行提取现金分录
  • mysql中索引有什么用
  • iis6设置
  • 用友t6运行特别慢
  • win7系统默认输入法
  • 禁用windows键快捷键
  • windowsserver2008r2密码重置
  • vmware workstation虚拟机设置
  • window打开注册表
  • win10 win7兼容模式
  • 帝国时代2能在win10
  • win7系统在那个文件夹
  • win8语言设置
  • 文件属性命令
  • 游戏新手引导架构
  • jquery实现搜索功能
  • linux 常用命令大全及其详解
  • node.js教学
  • 网页制作css怎么用
  • linux tar -zxf
  • nodejs lua
  • javascript内置对象window
  • 安卓手机管家在哪里打开
  • unity preferences
  • python搭建网页
  • js入门基础教程
  • android Intent Flags详解
  • android应用程序包下载安装
  • 江苏省国税总局
  • 税务登记没去登记会怎么处罚
  • 企业承包经营责任制
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设