解锁Spring框架姿势1

51次阅读

共计 2235 个字符,预计需要花费 6 分钟才能阅读完成。

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-get…
移动端公众号
欢迎关注公众号 布尔 bl,分享 Java 相关信息技术、生活感悟。

正文完
 0