Spring核心Ioc及Aop
# Spring Ioc
IOC: IOC我们说的控制反转,也就是将创建对象并生命周期的管理过程交给Spring处理。 在开发中不再需要关注对象的创建和声明周期的管理,我们需要时由Spring框架提供,这个由Spring管理创建对象和生命周期的机制称为控制反转。 通常,我们需要在Spring配置文件中声明bean定义,参考如下:
配置application.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<beans>
<bean id="helloService" class="全限定类名">
<property name="需要注入的属性名称" value="注入值" />
</bean>
</beans>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
DI: 还有一个概念叫做DI,即依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。可以理解为IOC是一种思想,而DI是一种行为。 参考如下:
public class TestBean {
private String name;
public TestBean(String name) {
this.name = name;
}
}
1
2
3
4
5
6
2
3
4
5
6
application.xml配置
<bean id="testBean" class="com.***.TestBean">
<constructor-arg name="name" value="Mr.Fire" />
</bean>
1
2
3
2
3
# Spring Aop
AOP (Aspect Orient Programming),直译过来就是 面向切面编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
AOP可以拦截指定的方法并且对方法增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离,比如Spring的事务,通过事务的注解配置, Spring会自动在业务方法中开启、提交业务,并且在业务处理失败时,执行相应的回滚策略。
Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用 JDK Proxy, 去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了
# 更多
了解更多,参考官网:https://docs.spring.io/spring-framework/docs/current/reference/html/index.html (opens new window)
最后更新时间: 2023/03/01, 22:17:09