解鎖Spring框架姿式1

Spring

介紹:Spring 框架是一個Java平臺,它爲開發Java應用程序提供全面的基礎架構支持。Spring負責基礎架構,所以您能夠專一於應用程序的開發。
Spring能夠讓您從「plain old Java objects」(POJO)中構建應用程序和經過非侵入性的POJO實現企業應用服務。此功能適用於Java SE的編程模型,所有的或部分的適應Java EE模型。java

Ioc(依賴注入)

一、 What:之前建立對象須要本身主動去new,比較費勁,ioc模式提供ioc service provider,解決了被注入對象依賴被依賴對象問題,減低了耦合。
二、 依賴注入方式spring

a) 構造器注入編程

b) Setter注入架構

c) 接口注入,接口注入侵入性強,使用比較少app

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/ide

相關文章
相關標籤/搜索