介紹:Spring 框架是一個Java平臺,它爲開發Java應用程序提供全面的基礎架構支持。Spring負責基礎架構,所以您能夠專一於應用程序的開發。
Spring能夠讓您從「plain old Java objects」(POJO)中構建應用程序和經過非侵入性的POJO實現企業應用服務。此功能適用於Java SE的編程模型,所有的或部分的適應Java EE模型。java
一、 What:之前建立對象須要本身主動去new,比較費勁,ioc模式提供ioc service provider,解決了被注入對象依賴被依賴對象問題,減低了耦合。
二、 依賴注入方式spring
a) 構造器注入編程
b) Setter注入架構
c) 接口注入,接口注入侵入性強,使用比較少app
//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); }
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