一.servlet中
public class HrServlet extends HttpServlet {
private ApplicationContext applicationContext = null;//定义全局变量context
@Override
public void init(ServletConfig config) throws ServletException {
ServletContext servletContext = config.getServletContext();
applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
}
/**
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HrService hrService = (HrService) applicationContext.getBean("hrService");
String dname = req.getParameter("dname");
Dept dept = null;
try {
dept = hrService.getRecord(dname);
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("dept1 = " + dept);
}
}
二.普通java类中
传统的方法
ApplicationContext context = new ClassPathXmlApplicationContext();
浪费内存,偶尔在 main方法里用一下还可以。
推荐的用法:
1:创建一个类并让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.
/**
* User: liuwentao
* Time: 11-7-21 下午3:55
* <p/>
* 说明:
*/
public class MyApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext context;//声明一个静态变量保存
/**
*
* @param contex
* @throws BeansException
*/
public void setApplicationContext(ApplicationContext contex) throws BeansException {
this.context = contex;
}
public static ApplicationContext getContext() {
return context;
}
}
2:在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.
<bean class="demo.MyApplicationContextUtil"></bean>
3:在普通java类中调用
HrService hrService = (HrService) MyApplicationContextUtil.getContext().getBean("hrService");
分享到:
相关推荐
然后,通过调用`getBeanFactory()`方法,我们可以得到`DefaultListableBeanFactory`类型的`BeanFactory`实例,这个实例是Spring容器内部管理Bean的真正场所。 ```java ConfigurableApplicationContext ...
这里我们将详细探讨如何在Java中通过Spring获取配置的bean。 1. **BeanFactory与ApplicationContext** - **BeanFactory** 是Spring中最基础的IoC容器,负责管理和实例化Bean。它允许开发者定义Bean的生命周期和...
获得 Spring 里注册 Bean 的四种方法 在 Spring 框架中,获取已注册的 Bean 对象是非常重要的一步。下面将介绍四种获取 Spring 里注册 Bean 的方法。 方法一:继承 BaseDispatchAction 这种方法常用于 Struts ...
在Spring框架中,管理Bean是其核心功能之一。Bean是由Spring容器创建、初始化、装配以及管理的对象,它们在应用程序中扮演着重要的角色。本篇文章将深入探讨如何在Spring应用中获取Bean,以及相关的源码分析和实用...
同时,由于每次请求都能快速从缓存中获取Bean,因此响应速度也得到提升。 然而,单例Bean并非没有缺点。它的一个主要劣势是线程安全性。如果一个Bean是有状态的,即它包含可变的实例变量,那么在多线程环境中,多个...
本篇文章将深入探讨如何使用Spring的ClassPathResource来获取bean对象,并通过实例解析其工作原理。 首先,理解什么是类路径资源。类路径(Classpath)是Java运行环境用来查找类和其他资源的路径。当你在类路径下...
Spring实战之获得Bean本身的id操作示例 在Spring框架中,获取Bean本身的id操作是一种常见的需求。通过实现BeanNameAware接口,Spring容器会在创建Bean时自动调用setBeanName()方法,并将Bean的配置id作为参数传给该...
本文将深入探讨如何在Java中获取Spring容器中的Bean,并通过具体的示例来讲解这一过程。 ### Spring框架概述 Spring框架是由Rod Johnson创建的一个开源项目,旨在简化Java企业级应用程序的开发。Spring的核心特性...
一旦我们得到了ApplicationContext,就可以通过调用`getBean`方法来获取任何已定义的Bean了: ```java MyDao myDao = (MyDao) context.getBean("daoBeanName"); ``` 这里,"daoBeanName"是我们在Spring配置文件中...
这意味着,如果多次从Spring容器中请求同一个`prototype` Bean,将会得到不同的对象。在配置文件中,`p2`被定义为`prototype` Bean,通过`scope="prototype"`指定。在`BeanTest`中,我们请求`p2`两次并进行比较,...
在Spring框架中,Bean是一个由Spring容器管理的对象,它可以通过依赖注入(Dependency Injection,简称DI)来获得其依赖项。Spring Boot利用Java配置或XML配置来定义Bean,但更倾向于使用Java配置,因为它更加简洁且...
4. **单例管理**:对于单例模式的Bean,Spring会缓存其实例,确保后续请求得到的是同一个对象。 在整个初始化过程中,Spring通过一系列的回调接口和事件机制,使得开发者可以自定义Bean的生命周期行为,比如添加...
每次从Spring容器中获取prototype作用域的Bean时,都会得到一个新的实例。这就意味着每次使用getBean()方法,都会创建一个新的Bean对象,从而允许开发者管理对象的完整生命周期,例如用于创建线程池或实现会话管理等...
在Java编程中,Spring框架是应用广泛的企业级开发工具,它提供了一种强大的依赖注入机制,使得开发者可以方便地管理并获取容器中的Bean。本文将详细介绍在Spring框架中获取配置Bean的三种主要方法。 1. **通过...
在 Spring 框架中,Bean 的实例化是通过 BeanFactory 中的 getBean 方法来实现的,该方法根据 bean 的名字、Class 类型和参数等来得到 bean 实例。 在了解 Bean 的实例化过程之前,我们需要了解 Spring 框架中 IoC ...
此时,我们需要通过控制Bean的加载顺序来确保依赖关系得到满足。 2. 几个误区 误区一:认为在@Configuration类中@Bean方法的位置决定加载顺序。实际上,Bean的加载顺序并不由其在代码中的位置决定,而是由Spring的...
然后,其他依赖于 `BaseService` 的 Bean(如 `ConsumerBean`)就可以在运行时得到正确的实现注入,无需显式地知道具体是哪个实现类。 在实际项目中,这可能涉及到以下步骤: 1. **定义插件接口**:创建一个公共...
4. **Spring MVC增强**:Spring Web MVC在3.0版本中得到了显著增强,包括支持RESTful风格的URL映射、支持异步请求处理、模板引擎集成(如FreeMarker、Thymeleaf)以及改进的视图解析。 5. **数据访问增强**:Spring...
2. **Bean实例化**:根据BeanDefinition,Spring容器创建Bean实例,可以是单例或多例。 3. **依赖注入**:Spring容器根据BeanDefinition中的依赖关系,为Bean注入依赖对象。 4. **初始化**:Spring容器调用Bean的...
每个模块都有相应的jar包,例如`spring-context.jar`提供了上下文支持,`spring-beans.jar`处理bean的生命周期,而`spring-webmvc.jar`则用于构建Web应用程序。5.3.9版本的库可能包含了对Java 8及更高版本的支持,...