介绍:Spring 框架是一个Java平台,它为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,所以您能够专一于应用程序的开发。
Spring能够让您从“plain old Java objects”(POJO)中构建应用程序和经过非侵入性的POJO实现企业应用服务。此功能适用于Java SE的编程模型,所有的或部分的适应Java EE模型。java
一、 What:之前建立对象须要本身主动去new,比较费劲,ioc模式提供ioc service provider,解决了被注入对象依赖被依赖对象问题,减低了耦合。
二、 依赖注入方式
a) 构造器注入
b) Setter注入
c) 接口注入,接口注入侵入性强,使用比较少spring
//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-get...架构
欢迎关注公众号 布尔bl ,分享Java相关信息技术、生活感悟。框架