传统方式-------------经过加载配置文件获取beanhtml
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); IDao dao= (IDao)context.getBean("dao");
参考自:http://blog.sina.com.cn/s/blog_62f6307d0101dn3c.html,http://www.iteye.com/topic/616752java
1.先写个工具类,实现ApplicationContextAware接口,而后他会把ApplicationContext对象传给你,在setApplicationContext方法里已经把ApplicationContext传给你了,而后去完成初始化。spring
/** * 从Spring容器中取得对象 * */ public class SpringContextUtil implements ApplicationContextAware, ServletContextAware { private static ApplicationContext applicationContext; // Spring上下文对象 private static ServletContext servletContext;// 注入 系统上下文对象 /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 * * @param applicationContext * @throws BeansException */ public void setApplicationContext(ApplicationContext applicationContext) { SpringContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } /** * 功能 : 实现 ServletContextAware接口,由Spring自动注入 系统上下文对象 * **/ public void setServletContext(ServletContext servletContext) { SpringContextUtil.servletContext = servletContext; } /** * @return ServletContext */ public static ServletContext getServletContext() { return servletContext; } }
2.applicationContext也须要注入不然报NullPointException,在spring配置文件applicationContext.xml中配置以下:数据库
<bean id="springContextUtil" class="com.aaa.util.SpringContextUtil" lazy-init="false"></bean>
3.java代码app
private static IDao Idao; Idao=(Idao)SpringContextUtil.getBean("dao");
4.注意:工具
解释下第2条中配置为啥要加 lazy-init="false"spa
在你的spring配置文件中通常会有default- default-lazy-init="true" 这句话。该属性默认为false状态,这样致使spring在启动过程致使在启动时候,会默认加载整个对象实例图,从初始化ACTION配置、到service配置到dao配置、乃至到数据库链接、事务等等。spring的启动会很慢因此在开发时都会改成true,延迟加载,而后就是会报NullPointException。code
注入 加上 lazy-init="false" 能够保证 当即加载。xml