初次使用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进阶之路】一步步重构容器实现Spring的IoC——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring的IoC——工厂+反射+配置文件实现IoC容器(十)
在Spring框架中,IOC(Inversion of Control,控制反转)容器是核心组件,它负责管理对象的生命周期,也就是Bean的生命周期。这篇SSH笔记主要探讨了如何在Spring4中利用BeanPostProcessor接口定制Bean的初始化和销毁...
Spring框架在SSH中的核心作用是作为管理容器,它实现了Inversion of Control(IoC,控制反转)和Dependency Injection(DI,依赖注入)的概念。IoC意味着应用程序的控制权由容器接管,而不是由程序自身控制。DI则是...
Spring的IoC容器允许开发者声明性地配置和组装对象,解耦了组件之间的依赖,使得代码更加灵活和易于测试。同时,Spring的AOP模块则允许开发者定义和实现横切关注点,如日志、事务管理等,进一步提高代码的可复用性...
在Spring中,对象依赖的其他对象不是由对象自身创建或查找,而是通过容器在对象初始化时不等对象请求就主动注入依赖对象,这一机制与JNDI相反,大大简化了对象的管理和依赖注入过程。 - **面向切面(AOP)**:Spring...
而在Spring中,这种控制权被反转,由Spring容器负责对象的创建和管理。开发者只需通过配置文件或注解来声明对象及其依赖关系,Spring会根据这些信息自动进行实例化和装配。 1. **Bean定义**:在Spring中,业务对象...
综上所述,在SSH框架中,Spring作为核心的管理容器,通过其独特的IoC和DI机制,实现了组件间的松耦合,提升了代码的可读性和可维护性。同时,Spring的AOP特性进一步增强了系统的灵活性和扩展性,特别是在事务管理和...
它还通过IoC(Inversion of Control)容器,帮助开发者管理对象的生命周期和依赖关系。在SSH整合中,Spring主要负责配置和管理其他组件,包括SpringMVC和Hibernate。 2. **SpringMVC**:SpringMVC是Spring框架的一...
3. **Action与Bean的自动装配**:通过这种方式,Struts2的Action可以自动装配Spring IoC容器中的Bean,大大减少了代码量,提高了开发效率。 综上所述,SSH框架的集成应用涉及多个层面的配置和设计,从数据访问到...
Spring的核心是IoC容器,它负责管理对象的生命周期和依赖关系,使代码更加解耦。在SSH整合中,Spring作为核心容器,协调其他两个框架,例如,它可以管理Struts 1的Action和Hibernate的SessionFactory。 **Hibernate...
Struts加载Spring应用上下文环境:三种方式 Spring与Struts整合:四种方式 Spring IoC容器创建SessionFactory:二种方式 Spring声明式事务管理:三种方式 DWR中加载Spring配置文件:三种方式
在SSH框架中,Spring作为IoC容器,负责管理所有的bean,包括Service层、DAO层以及其他的业务组件。这些bean通常在Spring的配置文件中定义,并通过@Autowired注解或者通过`getBean`方法在需要的地方注入。 3. **...
Spring的IoC容器管理着应用的组件,使得对象之间的依赖关系可以外部化,降低了代码的耦合度。Spring的AOP则允许开发者在不修改原有代码的情况下,添加如日志、性能监控等横切关注点。 【Hibernate】是SSH中的持久层...
#### 四、Spring IOC容器管理 - **Bean的生命周期**:在Spring容器中,Bean的生命周期包括初始化和销毁两个阶段。可以通过配置`init-method`和`destroy-method`来指定Bean的初始化和销毁方法。 - **依赖注入**:...
2. **Spring**:Spring 框架是企业级应用的核心,提供IOC容器管理和AOP支持。`51-52使用Struts + Spring + Hibernate完成用户登陆笔记.pdf`展示了如何整合Struts和Hibernate,通过Spring管理Bean,实现依赖注入,...
【SSH进阶之路】一步步重构容器实现Spring框架——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十) 【SSH进阶之...
下面将详细介绍Spring框架的核心组件以及这些jar包在Spring中的作用。 1. **Spring Core**: - `spring-core.jar`:Spring的核心模块,包含IoC(Inversion of Control,控制反转)和DI(Dependency Injection,...
Spring的IoC容器管理着系统中的对象及其依赖关系,使得代码更易于测试和维护。在教务管理系统中,Spring可能被用来管理数据库连接、事务处理、服务层对象的生命周期,以及调用其他的外部服务如邮件通知、短信服务等...
3. **配置文件**:配置Spring的IoC容器,Spring MVC的DispatcherServlet,以及Hibernate的SessionFactory。 4. **实体类与映射**:定义Java实体类,并用XML或注解方式配置映射到数据库表。 5. **DAO层**:创建DAO...