美文网首页
Spring中的IOC和AOP

Spring中的IOC和AOP

作者: ApesKingMan | 来源:发表于2020-04-15 14:20 被阅读0次

1. IOC(Inverse of Control):控制反转,也可以称为依赖倒置   

所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B。

所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果不倒置,意思就是A主动获取B的实例:B b = new B(),这就是最简单的获取B实例的方法(当然还有各种设计模式可以帮助你去获得B的实例,比如工厂、Locator等等),然后你就可以调用b对象了。

第一:在Spring中声明一个类:A

第二:告诉Spring,A需要B

假设A是UserAction类,而B是UserService类

    <bean id="userService" class="org.leadfar.service.UserService"/>

    <bean id="documentService" class="org.leadfar.service.DocumentService"/>

    <bean id="orgService" class="org.leadfar.service.OrgService"/>

    <bean id="userAction" class="org.leadfar.web.UserAction">

               <property name="userService" ref="userService"/> 

     </bean>

在Spring这个商店(工厂)中,有很多对象/服务:userService,documentService,orgService,也有很多会员:userAction等等,声明userAction需要userService即可,Spring将通过你给它提供的通道主动把userService送上门来,因此UserAction的代码示例类似如下所示。

    package org.leadfar.web;

    public class UserAction{

        private UserService userService;

        public String login(){

            userService.valifyUser(xxx);

        }

        public void setUserService(UserService userService){

            this.userService = userService;

        }

    } 

在这段代码里面,你无需自己创建UserService对象(Spring作为背后无形的手,把UserService对象通过你定义的setUserService()方法把它主动送给了你,这就叫依赖注入!),当然咯,我们也可以使用注解来注入。Spring依赖注入的实现技术是:动态代理。

2. AOP:即面向切面编程

面向切面编程的目标就是分离关注点。什么是关注点呢?就是你要做的事,就是关注点。

AOP的好处就是你只需要干你的正事,其它事情别人帮你干。也许有一天,你想裸奔,不想穿衣服,那么你把仆人A解雇就是了!也许有一天,出门之前你还想带点钱,那么你再雇一个仆人D专门帮你干取钱的活!这就是AOP。每个人各司其职,灵活组合,达到一种可配置的、可插拔的程序结构。

Spring的角度看,AOP最大的用途就在于提供了事务管理的能力。事务管理就是一个关注点,你的正事就是去访问数据库,而你不想管事务(太烦),所以,Spring在你访问数据库之前,自动帮你开启事务,当你访问数据库结束之后,自动帮你提交/回滚事务

参考:https://mp.weixin.qq.com/s/ANbjAYqvzxeYlMT45x2xlw

相关文章

  • Spring中的两大核心(Spring是一个IOC和AOP容器框架) IOC与aop IOC(spring的核心思...

  • 月薪45K的Java岗面试题首次曝光,掌握这些Offer指定跑不

    Spring篇 ======= Spring的IOC和AOP机制? Spring中Autowired和Resour...

  • Spring(二)-Spring AOP

    1. Spring AOP 回顾 Spring(一)中,我分享了 Spring的发展 IoC容器相关IoC思想和其...

  • Spring AOP 要点

    Spring对AOP的支持 Spring中AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC...

  • 2018-08-20

    spring框架中IoC和aop 1. IoC(Inversion of Control) (1) 控制反转:这...

  • Spring AOP实战和源码解析

    Spring AOP简介 说起Spring框架,我们最先想到的就是IOC和AOP了,如果说IOC是Spring的核...

  • AOP代理

    Spring中的AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC容器负责管理。AOP代理可...

  • 理解springAop的正确姿势

    Spring有两大核心,IOC和AOP。IOC在spring项目中基本无处不在,而AOP则用的基本比较少。 AOP...

  • 漫画说Spring AOP底层原理

    1、Spring中配置的bean是在什么时候实例化的? 2.描述一下Spring中的IOC、AOP和DI IOC和...

  • Spring AOP动态代理

    IOC和AOP是Spring中最重要的两个概念,而AOP最核心的部分在于动态代理。Spring AOP中的拦截功能...

网友评论

      本文标题:Spring中的IOC和AOP

      本文链接:https://www.haomeiwen.com/subject/yyzamhtx.html