`

SSH Spring获取Ioc容器管理对象

 
阅读更多
初次使用SSH时发现很多朋友在使用
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

获取ApplicationContext对象,进过自己测试这段代码适合C/S程序,在javaweb中这样获取ApplicationContext对象是很慢的。每次去getBean(”beanid“)时都会去加载applicationContext.xml",这样效率很低的。
Spring中提供了获取ApplicationContext对象的接口,在org.springframework.context.ApplicationContextAware中我们只需实现ApplicationContextAware接口的setApplicationContext方法,然后Spring的配置文件applicationContext.xml中注册实现ApplicationContextAware接口的类的类,并用静态的ApplicationContext变量把ApplicationContext保存下来,并在web.config中加上以下代码在网站启动时加载到内存中,然后就可以随心所欲的使用静态的ApplicationContext了。

继承接口代码:
package com.ssh.springfactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class SpringFactory implements ApplicationContextAware{

	private static ApplicationContext context;
	
	@Override
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		this.context=applicationContext;
	}
	

	public static Object getObject(String id) {
		Object object = null;
		object = context.getBean(id);
		return object;
	}
}


注册对象,因为SpringFactory继承了ApplicationContextAware接口,我们在applicationContext.xml中注册该类:
<bean id="springfactory" class="com.ssh.springfactory.SpringFactory"></bean>


在web.config中初始化Spring容器Ioc:
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>


然后就可以随心所欲的使用SpringFactory中的getObject方法了:
	public static Object getObject(String id) {
		Object object = null;
		object = context.getBean(id);
		return object;
	}

这样就不会再每次去获得对象时去new IOC对象了:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

你们也可以自己去断点ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");这段代码,用的时间不是一般的长……^_^.
分享到:
评论

相关推荐

    SSH笔记-IOC容器中 Bean 的生命周期

    SSH笔记-IOC容器中 Bean 的生命周期,通过实现BeanPostProcessor接口,来定义初始化方法和销毁方法时的逻辑

    SpringIoC的简单实现

    【SSH进阶之路】一步步重构容器实现Spring的IoC——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring的IoC——工厂+反射+配置文件实现IoC容器(十)

    基于RBAC和SSH的权限管理系统的设计和实现

    在具体的项目中,在SSH 框架基础上,使用Spring 的IoC 容器存储对象,使用过滤器拦截控制访问,具体实现RBAC 模型,从而构建良好的权限管理系统,并取得很好的效果。 关键词: RBAC; SSH 框架; 权限管理; 过滤器

    SSH.rar_82ssh com_ioc_ssh_www.82SSh。cOm_www.82ssh com

    Struts加载Spring应用上下文环境:三种方式 Spring与Struts整合:四种方式 Spring IoC容器创建SessionFactory:二种方式 Spring声明式事务管理:三种方式 DWR中加载Spring配置文件:三种方式

    Spring框架的简单实现

    【SSH进阶之路】一步步重构容器实现Spring框架——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十) 【SSH进阶之...

    ssh企业管理系统

    基于ssh,Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型...Spring一方面作为一个轻量级的IoC容器,负责查找、定位、创建和管理对象及对象之间的依赖关系,另一方面能使Struts和Hibernate更好地工作

    SSH--Spring详解

    Spring详解(IOC容器,DI依赖注入,APO),事务,注解等

    SSH笔记-Spring整合Struts2

    SSH笔记-Spring整合Struts2,作用是使用 IOC 容器来管理 Struts2 的 Action

    spring_day01_all.zip_Action!_ioc mechanism_service调用dao

    在SSH整合开发中,利用Spring管理Service、DAO等组件,利用IoC机制实现Action和Service,Service和DAO之间低耦合调用。利用AoP机制实现事务管理、以及共通功能的切入等。 功能是整合,好处是解耦。

    jsp论坛管理系统+sqlserver

    系统架构是现在主流的SSH架构模式,使用了Spring的...由IOC容器DAO的代理实例注入到业务组件中,业务组件通过DAO的委托接口调用DAO对象,使得上层组件不直接依赖于DAO的实现类,使得持久层更换或修改不影响上层组件。

    SSH2(spring3.2+strust2.3.4+hibernate4.2)框架演示代码

    Spring作为轻量级的控制反转(IoC)和面向切面编程(AOP)的容器框架,提供了依赖注入和事务管理等核心功能;Struts2是一个基于MVC设计模式的Web应用框架,负责处理请求和响应;Hibernate是一个对象关系映射(ORM)...

    struts2.4+spring3.1+hibernate4.1的SSH框架

    在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。...

    Java整合SSH框架

    在Java中整合SSH(Spring + Struts2 + Hibernate)框架时,需要引入相应的jar包。以下是一些基本的jar包和它们的用途: Spring基本和IOC的jar包: org.springframework.web-x.x.x.RELEASE.jar:在web.xml中配置...

    基于java ssh框架实现机票订购管理系统v2附数据库文件+文档说明

    Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大...

    SSH开发框架总结

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Hibernate是一个开放...

    SSH整合源码分析

    Spring整合Struts2 Spring整合Hibernate Struts2是一个web层框架 用于和数据库进行交互 Spring框架用来处理业务层 包括IOC容器 和Aop功能 Hibernate是一个持久化层框架 用于操作数据库

    项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5)130223.rar

    Spring作为IoC容器,负责管理对象的生命周期和依赖关系,降低了代码的耦合度。Hibernate作为ORM框架,负责将对象与数据库表进行映射,简化了数据库操作。其次,该系统使用Jsp作为前端展示层,提供了丰富的用户界面和...

    spring-framework-5-0-0-m3-zh_cn

    你可以使用IoC容器,任何 Web 框架在顶部(只是底层用Spring框架,比如ssh,中间那层 用了 Spring ),但你也可以只使用 Hibernate 集成代码或 JDBC 抽象层。 Spring 框架支持声 明式事务管理,通过RMI或Web服务远程...

    Java Web开发技术大全

    本书内容包括Web客户端技术、JSP/Servlet技术、Struts 2(拦截器、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、...

Global site tag (gtag.js) - Google Analytics