`

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");这段代码,用的时间不是一般的长……^_^.
分享到:
评论

相关推荐

    SpringIoC的简单实现

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

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

    在Spring框架中,IOC(Inversion of Control,控制反转)容器是核心组件,它负责管理对象的生命周期,也就是Bean的生命周期。这篇SSH笔记主要探讨了如何在Spring4中利用BeanPostProcessor接口定制Bean的初始化和销毁...

    SSH中spring的作用

    Spring框架在SSH中的核心作用是作为管理容器,它实现了Inversion of Control(IoC,控制反转)和Dependency Injection(DI,依赖注入)的概念。IoC意味着应用程序的控制权由容器接管,而不是由程序自身控制。DI则是...

    SSH Spring执行流程

    1. **业务逻辑容器**:负责管理应用中的业务对象,通过控制反转(IoC)和依赖注入(DI)来管理对象之间的依赖关系。 2. **事务管理**:提供对数据库操作的事务支持。 3. **AOP支持**:支持面向切面编程,用于处理...

    Java:SSH-Spring整合struts2&hibernate;框架

    Spring的IoC容器允许开发者声明性地配置和组装对象,解耦了组件之间的依赖,使得代码更加灵活和易于测试。同时,Spring的AOP模块则允许开发者定义和实现横切关注点,如日志、事务管理等,进一步提高代码的可复用性...

    SSH总结之Spring

    在Spring中,对象依赖的其他对象不是由对象自身创建或查找,而是通过容器在对象初始化时不等对象请求就主动注入依赖对象,这一机制与JNDI相反,大大简化了对象的管理和依赖注入过程。 - **面向切面(AOP)**:Spring...

    spring教程 ioc aop

    而在Spring中,这种控制权被反转,由Spring容器负责对象的创建和管理。开发者只需通过配置文件或注解来声明对象及其依赖关系,Spring会根据这些信息自动进行实例化和装配。 1. **Bean定义**:在Spring中,业务对象...

    在SSH框架Spring的作用

    综上所述,在SSH框架中,Spring作为核心的管理容器,通过其独特的IoC和DI机制,实现了组件间的松耦合,提升了代码的可读性和可维护性。同时,Spring的AOP特性进一步增强了系统的灵活性和扩展性,特别是在事务管理和...

    ssh整合(spring springmvc hibernate maven spring data jpa)

    它还通过IoC(Inversion of Control)容器,帮助开发者管理对象的生命周期和依赖关系。在SSH整合中,Spring主要负责配置和管理其他组件,包括SpringMVC和Hibernate。 2. **SpringMVC**:SpringMVC是Spring框架的一...

    springssh 我上培训班时spring框架搭建课件

    3. **Action与Bean的自动装配**:通过这种方式,Struts2的Action可以自动装配Spring IoC容器中的Bean,大大减少了代码量,提高了开发效率。 综上所述,SSH框架的集成应用涉及多个层面的配置和设计,从数据访问到...

    框架SSH_1整合开发struts1+spring+hernate

    Spring的核心是IoC容器,它负责管理对象的生命周期和依赖关系,使代码更加解耦。在SSH整合中,Spring作为核心容器,协调其他两个框架,例如,它可以管理Struts 1的Action和Hibernate的SessionFactory。 **Hibernate...

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

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

    处理ssh组合框架中如何用getBean获取实体

    在SSH框架中,Spring作为IoC容器,负责管理所有的bean,包括Service层、DAO层以及其他的业务组件。这些bean通常在Spring的配置文件中定义,并通过@Autowired注解或者通过`getBean`方法在需要的地方注入。 3. **...

    超市管理信息系统(SSH struts+spring+hibernate)

    Spring的IoC容器管理着应用的组件,使得对象之间的依赖关系可以外部化,降低了代码的耦合度。Spring的AOP则允许开发者在不修改原有代码的情况下,添加如日志、性能监控等横切关注点。 【Hibernate】是SSH中的持久层...

    Spring使用文档 IOC AOP

    #### 四、Spring IOC容器管理 - **Bean的生命周期**:在Spring容器中,Bean的生命周期包括初始化和销毁两个阶段。可以通过配置`init-method`和`destroy-method`来指定Bean的初始化和销毁方法。 - **依赖注入**:...

    java SSH框架架构学习_笔记.struts,spring,hibernate. IOC,AOP,JDBC,编写个留言管理系统网站

    2. **Spring**:Spring 框架是企业级应用的核心,提供IOC容器管理和AOP支持。`51-52使用Struts + Spring + Hibernate完成用户登陆笔记.pdf`展示了如何整合Struts和Hibernate,通过Spring管理Bean,实现依赖注入,...

    Spring框架的简单实现

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

    SSH中Spring所需基本jar包

    下面将详细介绍Spring框架的核心组件以及这些jar包在Spring中的作用。 1. **Spring Core**: - `spring-core.jar`:Spring的核心模块,包含IoC(Inversion of Control,控制反转)和DI(Dependency Injection,...

    基于ssh框架的教务管理系统

    Spring的IoC容器管理着系统中的对象及其依赖关系,使得代码更易于测试和维护。在教务管理系统中,Spring可能被用来管理数据库连接、事务处理、服务层对象的生命周期,以及调用其他的外部服务如邮件通知、短信服务等...

    新SSH(spring、spring mvc、hibernate)框架结构的java web案例实践

    3. **配置文件**:配置Spring的IoC容器,Spring MVC的DispatcherServlet,以及Hibernate的SessionFactory。 4. **实体类与映射**:定义Java实体类,并用XML或注解方式配置映射到数据库表。 5. **DAO层**:创建DAO...

Global site tag (gtag.js) - Google Analytics