zoukankan      html  css  js  c++  java
  • Spring IoC底层原理

    -------------------siwuxie095

       

       

       

       

       

       

       

       

    Spring IoC 底层原理

       

       

    1、IoC 即 Inversion of Control,控制反转,把对象的创建

    交给 Spring 进行管理

       

       

       

    2、IoC 容器管理 Bean 的方式:

       

    1)基于配置文件的方式

       

    2)基于注解的方式

       

       

       

    3、IoC 底层原理所使用的技术:

       

    1XML 配置文件

       

    2dom4j 解析 XML

       

    3工厂模式

       

    5反射

       

       

       

    4、原始方案,耦合度太高

       

       

       

    public class UserService{

       

    public void add(){}

       

    }

       

       

    public class UserServlet{

       

    UserService userService=new UserService();

     

    userService.add();

       

    }

       

       

       

    5、使用工厂模式解耦合,但 Servlet 和工厂类又有了新的耦合,

    所以它并不是最终的解决方案

       

       

       

    public class UserService{

       

    public void add(){}

       

    }

       

       

    public class UserServlet{

       

    UserService userService=UserFactory.getService();

     

    userService.add();

       

    }

       

       

    public class UserFactory{

       

    public static UserService getService(){

       

    return new UserService();

       

    }

       

    }

       

       

       

    6、使用 Spring IoC 解耦合,目前较优的解决方案

       

       

       

    第一步:创建 XML 配置文件,配置要创建对象的类

       

    <bean id="userService" class="com.siwuxie095.UserService" />

       

     

    第二步:创建工厂类,使用 dom4j 解析 XML 配置文件+反射

     

    public class UserFactory{

     

    public static UserService getService(){

     

    // 1、使用 dom4j 解析 XML 配置文件:

    // 根据 id 属性值得到 class 属性值

    String classValue="class 属性值";

     

    // 2、使用反射创建类对象

    Class clazz=Class.forName(classValue);

     

    UserService userService=clazz.newInstance();

     

    return userService;

     

    }

     

    }

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    【像程序员一样思考】读书笔记4
    MFC ListControl 与 Excel 数据的导入导出
    OpenCV中findContours函数的使用
    十大算法
    qsort对二维数组的排序
    【像程序员一样思考】读书笔记3
    【像程序员一样思考】 读书笔记2
    【像程序员一样思考】 读书笔记1
    代码混淆
    布局优化
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/7401149.html
Copyright © 2011-2022 走看看