spring的IOC和AOP详细讲解

1.解释spring的ioc? 几种注入依赖的方式?spring的优势? java

 

      IOC你就认为他是一个生产和管理bean的容器就好了,原来须要在调用类中new的东西,如今都是有这个IOC容器进行产生,同spring

 

时,要是产生的是单例的bean,他还能够给管理bean的生命周期! 数据库

 

       spring的IOC有三种注入方式 :编程

 

             第一是根据属性注入 也叫set方法注入;设计模式

             第二种是根据构造方法进行注入;安全

 

             第三种是根据注解进行注入,这种方式我认为比较好,方便,要是bean多的话,使用前两种方式会使得配置文件过于臃肿。框架

 

 Spring的优势:主要是根据它的IOC和AOP体现的。我感受他就是把咱们之前用到的工厂模式和代理模式进行了一个封装。函数

 IOC主要是解决了代码的耦合性问题,而AOP是面向切面编程的最好解释!oop

2.解释Spring中IOC, DI, AOP设计

      ioc就是控制翻转或是依赖注入。通俗的讲就是若是在什么地方须要一个对象,你本身不用去经过new 生成你须要的对象,

 

而是经过spring的bean工厂为你长生这样一个对象。

 

        aop就是面向切面的编程。好比说你每作一次对数据库操做,都要生成一句日志。若是,你对数据库的操做有不少类,

        那你每一类中都要写关于日志的方法。可是若是你用aop,那么你能够写一个方法,在这个方法中有关于数据库操做的方法,

        每一次调用这个方法的时候,就加上生成日志的操做。

3.spring的ioc/aop/代理

          ioc是控制反转,是spring的核心思想。经过面向接口编程来实现对业务组件的动态依赖。 aop是面向

 

切面编程,它并非只在spring或者java中才有的,它和面向对象编程(oop)是相对而言的另外一种编程思想。

 

 spring在实现aop编程时利用的是java的代理机制。我的以为java代理机制真的是很神奇。核心内容并很少

4.spring的ioc是解耦,aop是干什么的

     AOP面向切面编程将程序中的交叉业务逻辑(好比安全,日志,事务等),封装成一个切面,而后注入到目标对象(具体业务逻辑)中去。 

     好比:不少方法可能会抛异常,你要记录这个异常到日志中去,能够写个拦截器类,在这个类中记录日志,

     在spring.xml中配置一个对这些要记录日志的方法的aop拦截器在这个方法执行后调用这个拦截器,记录日志。

     这样就不用每次抛异常都要手动记录日志。 spring的事务管理用到的就是aop 这样也能够提升程序的内聚性。

5.讲解一下Java中Spring中IOC和AOP

         IoC:说直白点,就是经过配置文件(XML或.properties)指定须要实例化的JAVA类(类名的完整字符串),

         包括该JAVA类的一组初始化值,而后咱们在代码中加载该配置文件,而后经过 .getBean() 函数就能够获得一个该JAVA类的对象,

         而且该对象已经根据配置文件中指定的属性值进行了初始化。

       AOP:这个比IoC更简单,直白点说就是实现调用某个方法以前或/和以后,自动执行一系列自定义的语句

6.简述Spring框架中IOC和AOP

            IOC:控制反转,是一种设计模式。一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制;

            第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系。他们的依赖关系只在使用的时候才创建。 

 

          AOP:面向切面,是一种编程思想,OOP的延续。将系统中非核心的业务提取出来,进行单独处理。好比事务、日志和安全等。 

          Spring 的AOP和IOC都是为了解决系统代码耦合度太高的问题。使代码重用度高、易于维护。 

          不过AOP和IOC并非spring中特有的,只是spring把他们应用的更灵活方便 。