zoukankan      html  css  js  c++  java
  • 解锁Spring框架姿势1

    Spring

    介绍:Spring 框架是一个Java平台,它为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此您可以专注于应用程序的开发。
    Spring可以让您从“plain old Java objects”(POJO)中构建应用程序和通过非侵入性的POJO实现企业应用服务。此功能适用于Java SE的编程模型,全部的或部分的适应Java EE模型。

    Ioc(依赖注入)

    1、 What:以前创建对象需要自己主动去new,比较费劲,ioc模式提供ioc service provider,解决了被注入对象依赖被依赖对象问题,减低了耦合。
    2、 依赖注入方式
    a) 构造器注入
    b) Setter注入
    c) 接口注入,接口注入侵入性强,使用比较少

    Ioc两个主要容器

    Beanfactory容器(接口)

    //The root interface for accessing a Spring bean container.
    //访问Spring bean容器的根接口。
    public interface BeanFactory {
        String FACTORY_BEAN_PREFIX = "&";
    
    	//返回指定bean的实例,该实例可以是共享的或独立的。
        Object getBean(String var1) throws BeansException;
    
    	//返回指定bean的实例,该实例可以是共享的或独立的。
        <T> T getBean(String var1, Class<T> var2) throws BeansException;
    
    	//返回指定bean的实例,该实例可以是共享的或独立的。
        <T> T getBean(Class<T> var1) throws BeansException;
    
    	//返回指定bean的实例,该实例可以是共享的或独立的。
        Object getBean(String var1, Object... var2) throws BeansException;
    
    	//返回指定bean的实例,该实例可以是共享的或独立的。
        <T> T getBean(Class<T> var1, Object... var2) throws BeansException;
    	
    	//此bean工厂是否包含具有给定名称的bean定义或外部注册的singleton 实例?
        boolean containsBean(String var1);
    
    	//这个bean是一个共享的单例吗?
        boolean isSingleton(String var1) throws NoSuchBeanDefinitionException;
    	
    	//这ben是原型吗?也就是说,{@link #getBean}总会返回独立实例吗?
        boolean isPrototype(String var1) throws NoSuchBeanDefinitionException;
    
    	//检查具有给定名称的bean是否与指定的类型匹配。
        boolean isTypeMatch(String var1, ResolvableType var2) throws NoSuchBeanDefinitionException;
    
    	//检查具有给定名称的bean是否与指定的类型匹配。
        boolean isTypeMatch(String var1, Class<?> var2) throws NoSuchBeanDefinitionException;
    
    	//确定具有给定名称的bean的类型。更具体地说,*确定{@link #getBean}将为给定名称返回的对象类型
        Class<?> getType(String var1) throws NoSuchBeanDefinitionException;
    	
    	//返回给定bean名称的别名(如果有)。 *在{@link #getBean}调用中使用时,所有这些别名都指向同一个bean。
        String[] getAliases(String var1);
    }
    
    
    

    Applicationcontext容器(接口)

    public interface ApplicationContext extends EnvironmentCapable, 
    ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
       
    	//返回此应用程序上下文的唯一ID。
    	String getId();
    	
    	//返回此上下文所属的已部署应用程序的名称。
        String getApplicationName();
    
    	//返回此上下文的友好名称
        String getDisplayName();
    
    	//首次加载此上下文时返回时间戳。
        long getStartupDate();
    
    	//返回父上下文,如果没有父,则返回{@code null},这是上下文层次结构的根。
        ApplicationContext getParent();
    
    	//为此上下文公开AutowireCapableBeanFactory功能。
        AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;
    }
    
    
    
    


    由继承关系可以看出Applicationcontext容器功能强于Beanfactory容器

    参考:

    http://ifeve.com/overview-getting-started-with-spring/

  • 相关阅读:
    HDU 5791 Two (DP)
    POJ 1088 滑雪 (DPor记忆化搜索)
    LightOJ 1011
    POJ 1787 Charlie's Change (多重背包 带结果组成)
    HDU 5550 Game Rooms (ccpc2015 K)(dp)
    HDU 5542 The Battle of Chibi (ccpc 南阳 C)(DP 树状数组 离散化)
    HDU 5543 Pick The Sticks (01背包)
    HDU 5546 Ancient Go (ccpc2015南阳G)
    NB-IoT的DRX、eDRX、PSM三个模式 (转载,描述的简单易懂)
    MQTT 嵌入式端通讯协议解析(转)
  • 原文地址:https://www.cnblogs.com/chenzhuantou/p/10346397.html
Copyright © 2011-2022 走看看