为了账号安全,请及时绑定邮箱和手机立即绑定

解锁Spring框架姿势1

标签:
Java

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容器

参考:

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
8
获赞与收藏
52

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消