以前,Spring获得管理对象的几种实用方法(http://Java Cui.com/framework/36.html ),现在我再简单介绍一下。
通过实现ApplicationContextAware接口来实现。 因为此接口必须标记为实体,所以请添加@Component属性并使用Spring注释生成对象。 packagecom.utils;
importorg.spring framework.beans.beans exception;
importorg.spring framework.context.application context;
importorg.spring framework.context.applicationcontextaware;
importorg.spring framework.stereotype.com ponent;
//*
说明获取Spring容器中的对象
*/
@Component
publicclasspringfactoryimplementsapplicationcontextaware {
私有状态应用程序上下文;
@ suppress warnings (static-access ) )。
公共应用上下文(applicationcontext ) )。
throwsBeansException{
this.context=APP应用程序context;
}
//*
*从id获取Spring容器对象
*@paramID对象id
*@returnSpring容器中的对象
*/
公共同步静态对象(stringid )。
Objectobject=null;
object=context.getbean(id;
返回对象;
}
}
请注意,还必须删除Spring延迟加载。 否则,将在创建实例之前等待其使用。 获取Bean的此方法获取空对象。
所以,取消applicationContext.xml中的default-lazy-init='true '属性。
如果注释和XML的放置不同,对于XML,我们的Bean都是自己命名的。 这里完全不知道Bean的名字。
Spring基于标准Java规范,以Bean名称的首字母小写命名。
这样,ipinfoserviceips=(IP info service ) spring factory.getobject (IP info service ) );
注释是自动的,因此请避免创建同名的Java类。