资讯专栏INFORMATION COLUMN

Spring框架的基本作用

acrazing / 1401人阅读

摘要:作为框架,它最主要的功能就是管理一堆使应用发挥功能的类,这些作为整个的基石主干的类,就叫做。由此可见,框架的出发点是直观的,它就是去充当一堆发挥功能的类的代理,将这些统一归到自己的作管理。

作为Spring框架,它最主要的功能就是管理一堆使App(应用)发挥功能的类,这些作为整个App的基石、主干的类,就叫做bean。

要管理bean,也即是这堆发挥业务功能的类,就不能直接把它们new出来,这样缺乏统一的调度。所以,Spring使用.xml配置文件作为媒介,以IoC(Inversion of Control 控制反转)作为工具,将这些bean拿给Spring container作统一管理。

基于此,要把一个bean扔给container,至少需要两部分:

bean对应的类的定义

间接控制的.xml配置文件

之所以需要两部分也是容易理解的,首先你得有一个bean自身的定义吧。再来,你得告诉Spring container应该以什么样的方式去接受这个bean,这个就是由.xml文件来说明。

例如,我们要管理的bean叫做HelloWorld,那么它的这两部分分别是:applicationContext-src.xml



    
            
        
      

HelloWorld.java

public class HelloWorld {
    private String message;     
    
    public void setMessage(String message) {       
        this.message  = message;    
    }     
    
    public void getMessage() {       
        System.out.println("Your Message : " + message);    
    } 
}

有了这两部分,Spring container就可以正确地接收名为HelloWorld的bean。

现在,如果要使用这个bean,当然不可以直接去触碰HelloWorld这个bean,而是需要通过管理它的代理人Spring container来得到bean,进而用这个bean来为自己服务。

例如,名为MainApp.java的这个类,现在需要使用HelloWorld这个bean的服务,我们就可以这样做:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {    
    
    @SuppressWarnings("resource")
    public static void main(String[] args) {       
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-src.xml");        
        HelloWorld obj = (HelloWorld) context.getBean("helloWorld");        
        obj.getMessage();    
    }
}

这里有两部分:

首先根据配.xml置文件的位置去拿到Spring container,也即是这里的Context,可以把它理解为几种Spring container中最著名的代言人。

有了这个代言人后,自然就可以向这个代言人索取需要的bean HelloWorld,于是由context.getBean()方法去拿到需要的bean。

这样得到bean后,就可以直接使用了。

由此可见,Spring框架的出发点是直观的,它就是去充当一堆发挥功能的类(bean)的代理,将这些bean统一归到自己的container作管理。任何其他需要使用到bean的类,都必须通过它这个代理人做索取。

一个值得探讨的问题是,以上相当直观易懂,但为什么在一般的Java Web开发中,没怎么看到关于ApplicationContext的声明?

原因是,在通常的J2EE开发中,Spring Context的声明不是直接在用户代码中完成的,而是借由web.xml中配置的:


    contextConfigLocation
    /WEB-INF/daoContext.xml /WEB-INF/applicationContext.xml



    org.springframework.web.context.ContextLoaderListener

这里借助了ContextLoaderListener就把ApplicationContext注册进了我们的Web App。

另一个更重要的考虑是:

你的代码中不应该出现对ApplicationContext的直接使用,而是同样地使用配置文件、借助IoC去使用Context

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71817.html

相关文章

  • 慕课网_《Spring入门篇》学习总结

    摘要:入门篇学习总结时间年月日星期三说明本文部分内容均来自慕课网。主要的功能是日志记录,性能统计,安全控制,事务处理,异常处理等等。 《Spring入门篇》学习总结 时间:2017年1月18日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:https://github.com/zccodere/s...个人学习源码:https://git...

    Ververica 评论0 收藏0
  • Java深入-框架技巧

    摘要:从使用到原理学习线程池关于线程池的使用,及原理分析分析角度新颖面向切面编程的基本用法基于注解的实现在软件开发中,分散于应用中多出的功能被称为横切关注点如事务安全缓存等。 Java 程序媛手把手教你设计模式中的撩妹神技 -- 上篇 遇一人白首,择一城终老,是多么美好的人生境界,她和他历经风雨慢慢变老,回首走过的点点滴滴,依然清楚的记得当初爱情萌芽的模样…… Java 进阶面试问题列表 -...

    chengtao1633 评论0 收藏0
  • spring入门指南

    摘要:装配提供了三种装配机制在中进行显示配置在中进行显示配置隐式的发现机制和自动装配机制。表示该类是一个组件,将自动创建该组件实例,表示注入组件实例,和功能类似,和功能类似,但和是规范中提供的注解。 基本原理 spring的基础是IOC和DI,其实IOC和DI是对同一件事从不同的方面进行描述的,两者在spring中是同一件事务。 IOC:控制反转,在这里就是指创建bean的主动权发生了转移,...

    shusen 评论0 收藏0
  • SpringMVC 配置和基本使用

    摘要:配置开启注解模式简化配置自动注册默认提供了一系列的功能数据绑定数字和日期的转换的读写支持映射路径静态资源默认配置加入对静态资源的处理允许使用做整体配置映射后面的和类基本上都要自动包扫描,让认识然后就可以尽情的使用了。 花了点时间做的(比较水)笔记,有可能有漏洞,有不对的,欢迎指出(如果你会看的话)。 首先都是二话不说,先找依赖(Gradle): // spring系列 // 这个jar...

    CarterLi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<