Spring理解IOC,DI,AOP作用,概念,理解。
IOC控制反转:创建实例对象的控制权从代码转换到Spring容器。实际就是在xml中配置。配置对象
实例化对象时,进行强转为自定义类型。默认返回类型是Object强类型。
ApplicationContext 需要引依赖。
Spring核心 依赖
context core beans spEL
//创建Spring容器 使用ApplicationContext接口new出ClassPathXmlApplicationContext实现类 ,传参为Spring配置文件。
ApplicationContext alc=new ClassPathXmlApplicationContext("Application.xml");
//使用Spring容器实例化对象 。 传参为配置文件中的bean节点
Student stu1 = (Student)alc.getBean("stu");
System.out.println(stu1.toString());
Spring配置文件中:


DI: 把代码向对象属性或实例对象注入属性值或域属性的控制权限转给Spring容器进行控制。
DI实现为对象注入属性值 在配置文件中的bean节点进行注入
实现注入的方式很多有构造注入 set注入 p:注入 等等 。 在开发中使用频率较多的是set注入。推荐使用set注入
<!--使用p: 进行为属性注入和域属性注入。 使用idea工具可alt加enter进行快捷导包。-->
<bean id="stu" class="cn.Spring.Day04.Student" p:name="王力宏" p:age="18" p:car-ref="car"></bean>
<!--使用set注入--> <!--car类 想要在student类为car类的属性赋值则需要引用car--> <bean id="car" class="cn.Spring.Day04.Car"> <property name="penst" value="兰博基尼"></property> </bean> <bean id="stu1" class="cn.Spring.Day04.Student"> <!--如果是对象属性注入 property使用value进行赋值--> <property name="name" value="小猪猪"></property> <!--如果是域属性注入 property使用ref进行引用--> <property name="car" ref="car"></property> </bean>

AOP:
AOP的作用是对方法进行增强。
未使用AOP进行方法增强:

使用AOP前置增强:
1.创建一个普通类实现MethodBeforeAdvice
public class LoggerBore implements MethodBeforeAdvice{
/*MethodBeforeAdvice前置增强*/
@Override
public void before(Method method, Object[] args, Object target) throws Throwable {
System.out.println("记录日志");
}
}
2.配置xml:
<bean id="dao" class="cn.Spring.Day05AOP.dao.UBDaoImpl"></bean>
<bean id="service" class="cn.Spring.Day05AOP.service.UBServiceImpl">
<property name="dao" ref="dao"></property>
</bean>
<bean id="aop" class="cn.Spring.Day05AOP.aop.LoggerBore"></bean>
<aop:config>
<!--切点 expression表达式:切入点表达式,符合改表达式的方法可以进行增强处理。-->
<!--表达式中:public可省,void或别的类型可以换成* *..指的是全路径下的service下的路径下的方法,(..)中的“..”指的是0到多个参数-->
<!--public void cn.Spring.Day05AOP.service.UBServiceImpl.doSome()-->
<aop:pointcut id="mypointcut" expression="execution(* *..service.*.*(..))"></aop:pointcut>
<aop:advisor advice-ref="aop" pointcut-ref="mypointcut"></aop:advisor>
</aop:config>
AOP后置增强则实现 AfterReturningAdvice,改一下就可以。
Spring理解IOC,DI,AOP作用,概念,理解。的更多相关文章
- Spring IOC DI AOP 的简单理解及应用
Spring两大特性:IOC 和AOP.IOC 控制反转,AOP 面向切面编程 spring 核心容器的主要组件时Bean工厂(BeanFactory) ,Bean 工厂使用控制反转模式来降低程序代码 ...
- Spring中的IOC\DI\AOP等概念的简单学习
IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终, 所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系.Spr ...
- 解释Spring中IOC, DI, AOP
oc就是控制翻转或是依赖注入.通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new 生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象.aop就是面向切面的编程.比如说 ...
- spring的IOC和AOP
spring的IOC和AOP 1.解释spring的ioc? 几种注入依赖的方式?spring的优点? IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是 ...
- spring的IOC和AOP详细讲解
1.解释spring的ioc? 几种注入依赖的方式?spring的优点? IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是有这个IOC容器进行产生,同时, ...
- 简单理解Spring之IOC和AOP及代码示例
Spring是一个开源框架,主要实现两件事,IOC(控制反转)和AOP(面向切面编程). IOC 控制反转,也可以称为依赖倒置. 所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B, ...
- Spring 的 IOC 和 AOP 的理解
Spring 的 IOC 和 AOP 的理解: https://www.jianshu.com/p/bf1adc3b75e6 对Spring的核心(AOP和IOC)的理解(大白话) https://w ...
- 深入理解IoC/DI
------------------------------------------------------------------------ 理解IoC/DI 1.控制反转 --> 谁控制谁 ...
- Spring的IOC和AOP之深剖
今天,既然讲到了Spring 的IOC和AOP,我们就必须要知道 Spring主要是两件事: 1.开发Bean:2.配置Bean.对于Spring框架来说,它要做的,就是根据配置文件来创建bean实例 ...
随机推荐
- 从本地上传项目到 github 以及从github 下载项目到本地环境
前置条件:成功安装github,安装成功后,要配置密钥,不然上传不成功,要报错 具体上传步骤: git init //初始化 git add 文件名 //更新文件 git commit -m ...
- spring boot 源码分析
说明:spring boot版本 2.0.6.RELEASE 思绪 首先,大家认识spring boot是从@SpringBootApplication注解和org.springframework.b ...
- txt 修改
[61TECH_HEIBAILIUYI]#gaIcldGcyd7ducFc3deaRaOdAd4dPdMdaenc1chaeedeGcfcfeyd1cedhbidIcXcIdBdbdvdfcvbjdr ...
- T-SQL流程控制语句
文章目录 if else语句 简单case语句 搜索式case语句 while语句 if else语句 格式: IF 布尔表达式 BEGIN END ELSE BEGIN END 示例: DECLAR ...
- idea在debugger模式下无法启动,但是在run模式下可以启动的问题
debugger模式下,启动idea,总是报内存溢出异常, Error creating bean with name 'sysRoleUserMapper' defined in URL [jar: ...
- 基于百词斩和扇贝单词的背单词APP软件测试
概述 背单词APP是非常受大学生青睐的手机应用,但它的发展尚未成熟,存在一些缺陷.我们决定深入地分析一组典型的背单词APP:百词斩(A产品).扇贝单词(B产品),寻找当前背单词APP中的提升空间.下面 ...
- java 排序算法
1.冒泡排序 public static void main(String[] args) { int[] arr={6,3,8,2,9,1}; System.out.println("排序 ...
- 团队-爬虫豆瓣top250项目-模块测试过程
模块测试: 项目托管平台地址:https://github.com/gengwenhao/GetTop250.git 模块测试:"获取250排名的全部电影信息"功能,测试方法:手动 ...
- Python类——面向对象
一.有关面向对象的一些知识 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” ...
- wcf生成客户端代理类步骤及语句
通过svcutil.exe工具生成客户端代理类和客户端的配置文件 .在运行中输入cmd打开命令行 ()cd C:\Program Files (x86)\Microsoft SDKs\Windows\ ...