• Spring之IOC


    IOC的中文翻译是控制反转,inversing of control .意思是在代码编写中,把  部分  创建对象 的功能交给框架。

    原因是在软件工程实践中,人们发现当在代码中需要频繁创建某个对象时,例如java Web中servlet层需要调用service层的接口实现类方法,那首先就要在代码中获得一个接口实现类的对象。

    例如 

    StudentLoginService studentLoginService = new StudentLoginServiceImpl();//创建sercive对象
    Student student = studentLoginService.studentLogin(name, address);//调用service层对象方法

     对象studentLoginService是接口型的,因为可以对应不同的实现类,从而具有灵活性。

    但是在代码中用new 方式创建对象,如果后期需要用不同的实现类来替换升级,而这样的代码块有很多的话,例如1万个,就会出现更新困难的问题——手动修改1万个代码块,心里无数个神兽。

    控制反转的意思,就是spring这样的框架,他帮你实现了一个功能,你只需要告诉它(通过xml配置文件)你需要创建的对象的路径(包名),它就能利用java反射技术,帮你创建对象,并且在一个容器(类似map)中保存。

    这样当有新的实现类的时候,就不需要再在代码块中修改new 语句,只需要修改xml配置文件中对象类的路径,框架就可以帮你用新的类创建对象。

    上面的代码就可以修改成这样:

    private StudentLoginService studentLoginService;//声明类属性
    ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
    studentLoginService = (StudentLoginService) ac.getBean("studentLoginService");
    Student student = studentLoginService.studentLogin(name, address);调用service方法

    在xml文件中:

    
        
            
        

  • 相关阅读:
    Java后端学习路线经验分享--全网最靠谱
    【无标题】
    QT-QPainter实现一个动态充电的电池
    MySQL-存储过程
    python排序算法
    JAVA概述
    C++/MFC 算术表达式求值
    IDEA的乱码与file.encoding = UTF-8
    CSDN页面左上角出现红色“不安全 | https” ,并且把鼠标放在上面的头像和消息时无法下拉菜单
    「笔耕不辍」常见远程调用协议
  • 原文地址:https://blog.csdn.net/m0_47161778/article/details/126697384