`

Java类如何获取Spring的Bean

阅读更多

 1.创建一个类并让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.

  示例代码:

 


   view plaincopy to clipboardprint?
  import org.springframework.beans.BeansException;
  import org.springframework.context.ApplicationContext;
  import org.springframework.context.ApplicationContextAware;
  public class MyApplicationContextUtil implements ApplicationContextAware {
  private static ApplicationContext context;//声明一个静态变量保存
  @Override
  public void setApplicationContext(ApplicationContext contex)
  throws BeansException {
  this.context=contex;
  }
  public static ApplicationContext getContext(){
  return context;
  }

  2.在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.

  例:

 


   <!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性--> 
  <bean class="org.ing.springutil.MyApplicationContextUtil"></bean>  

  3.有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象.

 

 

4.在java中获得applicationContext引用:

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

 

public class ApplicationListener implements ServletContextListener {
 private static final Log log = LogFactory.getLog(ApplicationListener.class);

 public void contextDestroyed(ServletContextEvent arg0) {
   
 }

 
 public void contextInitialized(ServletContextEvent evt) {
  System.setProperty("user.timezone", "GMT+0800");// 服务器的时区应该是可以配置的
//  TimeZone.setDefault(TimeZone.getTimeZone("GMT+0800")); //这个真TMD奇怪
  ServletContext sc = evt.getServletContext();

   
  //获取spring上下文
  ServletContext context = evt.getServletContext();
  ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
  System.out.println("在这里向java类中传递ctx参数,可以在这里初始化,启动别的服务");
   
  evt.getServletContext().setAttribute("test",2);
  
   }
 }

 

在web.xml中配置如下:

<listener>
  <listener-class>
   com.listener.ApplicationListener
  </listener-class>
 </listener>

分享到:
评论

相关推荐

    java *spring工具类 方便在非spring管理环境中获取bean

    java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...

    Java中Spring获取bean方法小结

    这里我们将详细探讨如何在Java中通过Spring获取配置的bean。 1. **BeanFactory与ApplicationContext** - **BeanFactory** 是Spring中最基础的IoC容器,负责管理和实例化Bean。它允许开发者定义Bean的生命周期和...

    java spring工具类 方便在非spring管理环境中获取bean

    java spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取bean...

    Spring bean 动态注册,jar包热替换

    Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class...测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录中的jar实现类。

    普通类调用Spring bean对象

    这样,我们就能在普通类中获取到Spring管理的bean实例。 2. **@Autowired**:如果普通类也是Spring的一部分,即它也被Spring管理,那么可以使用注解`@Autowired`来自动装配bean。这样,Spring会自动找到类型匹配的...

    Web项目中获取SpringBean与在非Spring组件中获取SpringBean.pdf

    总的来说,获取非Spring管理组件中的SpringBean主要有两种方式:一是通过实现`ApplicationContextAware`接口并存储ApplicationContext,二是使用注解和静态内部类来注入BeanFactory。这两种方法都是Spring框架提供的...

    线程中获取spring 注解bean

    当需要在线程中获取Spring注解的bean时,有几种常见的方法: 1. **ThreadLocal**:Spring提供了一种名为`ThreadLocalTargetSource`的特殊`TargetSource`实现,可以将bean实例绑定到当前线程。这样,每个线程都有其...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    spring bean XML配置入门

    其中,`id`属性是Bean的唯一标识,`class`属性指定Bean对应的Java类。 5. **依赖注入**: Spring的核心特性之一是依赖注入。上述示例中的`&lt;property&gt;`标签就是用来注入Bean的属性。Spring支持通过属性值、构造器...

    实例化Spring bean的两种工厂方法

    实例化Spring Bean的方式多种多样,包括XML配置、注解配置以及Java配置等。而工厂方法是其中一种自定义实例化过程的方法。 1. **实例工厂方法** 实例工厂方法是通过一个具体的工厂类实例来创建Spring Bean。在...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    在Spring框架中,Bean的生命周期管理是其核心特性之一,然而有时我们可能会遇到Spring Bean重复执行两次的问题,即实例被构造两次。这个问题可能是由多种原因引起的,涉及到Spring的初始化过程和容器的行为。以下是...

    Java获取Spring中配置的Bean的三种方式

    在Java编程中,Spring框架是应用广泛的企业级开发工具,它提供了一种强大的依赖注入机制,使得开发者可以方便地管理并获取容器中的Bean。本文将详细介绍在Spring框架中获取配置Bean的三种主要方法。 1. **通过...

    详解Spring 中如何控制2个bean中的初始化顺序

    Spring 中控制 2 个 bean 的初始化顺序 在 Spring 框架中,控制多个 bean 的初始化顺序是一个常见的问题。本篇文章将详细介绍如何控制 2 个 bean 的初始化顺序,提供了多种实现方式,并分析了每种方式的优缺。 ...

    IOC之基于Java类的配置Bean

    基于Java类的配置Bean是Spring实现IOC的一种方式,与XML配置相比,提供了更灵活和类型安全的选项。 在Spring中,我们可以通过编写Java类来定义Bean的配置,这种配置方式通常被称为JavaConfig。这种方式的优点在于...

    SpringBoot 获取spring bean方式.rar

    Spring框架为我们提供了多种获取Bean的方法,这些方法可以帮助开发者在不同场景下灵活地使用Bean。本篇将详细介绍Spring Boot中获取Bean的几种常见方式。 首先,让我们理解什么是Spring Bean。在Spring框架中,Bean...

    使用java类配置Bean

    在Spring框架中,Bean的配置方式主要有两种:XML配置和基于Java的配置。本文将深入探讨"使用java类配置Bean"这一主题,特别是在SIA实战项目中的应用。 首先,让我们理解Spring框架的核心概念——Bean。在Spring中,...

    spring bean 属性总结

    `&lt;bean&gt;`元素用于告诉Spring容器一个类及其配置方式。它包含了以下关键属性: - **class属性**:表示JavaBean的全限定类名。例如,`com.example.MyClass`。这是Spring创建Bean实例的基础。 - **id属性**:是Bean...

    Java类获取Spring中bean的5种方式

    在Spring应用中,我们经常需要在Java类中获取由Spring管理的bean,以便进行依赖注入或者调用其方法。本文将详细介绍5种在Java类中获取Spring bean的方法。 1. **通过ApplicationContext初始化** 这是最基础的方式...

    spring中的bean

    3. **Java配置类**:Spring 3.0引入了Java配置,允许我们使用Java类来配置Bean。 ```java @Configuration public class AppConfig { @Bean public MyBean myBean() { return new MyBean(); } } ``` 这里的`@Bean...

    Spring Bean 加载顺序 .

    Spring支持多种配置方式,包括XML、Java配置类(@Configuration)、注解(@Component、@Service等)以及通过@ConfigurationProperties处理YAML或Properties文件。在实验小例子中,我们可能看到这几种配置方式的组合...

Global site tag (gtag.js) - Google Analytics