spring 是一站式开发的轻量级开源框架,通过配置文件中的<bean>元素配置用于创建实例对象的类名和实例对象的属性
spring 提供IOC 和AOP 技术,我们可以将对象之间的依赖关系交给spring 来进行管理,避免了强耦合;AOP 可以帮我们进行切面式编程,例如事务的管理或登陆权限管理;
spring 对junit4 进行了支持,方便了程序的测试
声明了事务的支持,减少代码量提高了开发效率
spring 封装了一些技术,例如:jdbc、远程调用等,降低了开发难度
spring 整合了世面上很多优秀的框架,方便集成;例如(hibernate、struts2)
IOC:控制反转,举例说实例一个对象原本由我们new 来进行实例化,现在交由spring 来进行构建放置到IOC 容器中,我们只需要调用即可;
DI:注入机制,在xml 配置文件中对配置的对象进行 属性/对象 注入
<!-- 属性注入 -->
<bean id="user" class="com.domain.User">
<property name="username" value="zhangsan" />
<property name="password" value="12345" />
</bean>
<!-- 对象注入 -->
<bean id="users" class="com.domain.Users">
<property name="user" ref="user" />
</bean>
AOP:面向切面编程
不修改源码就进行方法的扩展
AOP 的本质横向代码抽取机制
如果是结构使用JDK 的动态代理,如果是类使用 CGLIB 方式实现动态代理(继承)
连接点:目标类中可以被增强的方法
切点:目标类中被增强了的方法
通知/增强:增强逻辑类中,具体的增强的方法(增强的逻辑)
切面:是指将增强逻辑和切点连接起来的统称的概念(切点和通知组合)
引介:在目标类中添加一个属性或方法
织入:将增强逻辑用到切点的过程
image.png
网友评论