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实例 ...
随机推荐
- [二分答案][NOIP2015]跳石头
跳石头 题目描述 一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石(不含起 ...
- STS中web.xml配置文件
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " ...
- C#替换文件中特定字符串,按照原来的编码格式保存
private void button1_Click(object sender, EventArgs e) { var txt1 = "E:\\Temp\\local"; str ...
- mysql 主从库同步
#主库修改my.ini [mysqld] server log-bin=mysql-bin binlog-do-db=demo #从库修改my.ini [mysqld] server replicat ...
- JavaWeb(一)-Servlet中的Config和Context
一.ServletConfig对象 1.1获取一个servletConfig对象 1)通过初始化方法获得一个servletconfig 2)通过继承父类(GenericServlet.)得到一个ser ...
- 20155312 张竞予 Exp9 Web安全基础
Exp9 Web安全基础 目录 基础问题回答 (1)SQL注入攻击原理,如何防御 (2)XSS攻击的原理,如何防御 (3)CSRF攻击原理,如何防御 实践过程记录 WebGoat准备工作 1.XSS攻 ...
- python基础--------字符串的调用详解(2)
Python 字符串的的调用方法~~~@@@ 17. strip : 去除字符串左右两边指定的字符 18. rstrip : 去除字符串右边指定的字符 19 . lstrip : 去除 ...
- C/C++中volatile关键字详解
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier.这是 BS 在 "The ...
- ubuntu18.04静态ip设置
1.配置文件 vi /etc/netplan/-cloud-init.yaml network: ethernets: enp129s0f0: addresses: [] dhcp4: true op ...
- font-size:0的妙用,用于解决inline或者inline-block造成的间隙
1.图片间的缝隙(图片间的间隙一般是由换行.缩进造成的) <div> <img src="1.jpg"> <img src="2.jpg&q ...