`
啸笑天
  • 浏览: 3465817 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

Spring中与Bean相关的接口

阅读更多

package chapter22;

 

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.BeanClassLoaderAware;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.beans.factory.BeanFactoryAware;

import org.springframework.beans.factory.BeanNameAware;

import org.springframework.beans.factory.DisposableBean;

import org.springframework.beans.factory.InitializingBean;

import org.springframework.context.ApplicationContext;

import org.springframework.context.ApplicationContextAware;

 

//如果被装配的Bean实现了相应的接口,就可以在Bean中获得相应的信息。,或者进行某些操作。

public class HelloServiceImpl implements HelloService,

//以下同时为接口的调用的顺序

BeanNameAware,//获得Bean名,也就是<Bean>标签的id属性值。

BeanClassLoaderAware,//获得装载过程中的ClassLoader对象。

BeanFactoryAware,//获得BeanFactory对象

ApplicationContextAware,//获得ApplicationContext对象

InitializingBean, //在Bean的所有属性设置完后,并且在调用完上面接口的方法后,调用此接口的afterPropertiesSet方法

DisposableBean //当销毁Bean时,调用此接口的destroy方法

{

private String greeting;

public String getGreeting() {

// TODO Auto-generated method stub

return "hello "+greeting;

}

//以下同时为方法的调用的顺序

public void setGreeting(String greeting)

{

this.greeting = greeting;

System.out.println("设置greeting属性");

}

public void setBeanName(String name) {

System.out.println("BeanNameAware接口方法  "+name);

}

 

public void setBeanClassLoader(ClassLoader arg0) {

System.out.println("BeanClassLoaderAware接口方法  "+arg0);

}

public void setBeanFactory(BeanFactory arg0) throws BeansException {

System.out.println("BeanFactoryAware接口方法  "+arg0);

}

 

public void setApplicationContext(ApplicationContext applicationContext)

throws BeansException {

System.out.println("ApplicationContextAware接口方法  "+applicationContext);

}

public void afterPropertiesSet() throws Exception {

System.out.println("InitializingBean接口方法");

}

public  void initMethod(){

System.out.println("<bean>标签的init-Method属性指定的方法,此方法在afterPropertiesSet()之后调用");

}

 

public void destroy() throws Exception {

System.out.println("destroy");

}

public  void destroyMethod(){

System.out.println("<bean>标签的destroy-Method属性指定的方法,此方法在destroy()之后调用");

}

}

 

 

applicationContext.xml中的部分:

<bean id="greeting" class="chapter22.HelloServiceImpl" scope="prototype" init-method="initMethod" destroy-method="destroyMethod">

<property name="greeting" >

<value>yjz</value>

</property>

</bean>

分享到:
评论

相关推荐

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

    例如,可以使用 Spring 的 @Order 注解来指定 bean 的初始化顺序,也可以使用 Spring 的生命周期接口(如 InitializingBean)来控制 bean 的初始化顺序。 总结 控制 2 个 bean 的初始化顺序是一个常见的问题,本篇...

    spring运行过程中动态注册bean

    在Spring框架中,动态注册Bean是一项非常实用的功能,它允许我们在应用运行时向Spring容器添加新的Bean定义。这种能力在很多场景下都是极其有用的,比如根据不同的环境配置加载不同的服务实现,或者在运行时根据某些...

    Spring实例化Bean顺序

    在Spring框架中,Bean的实例化顺序是一个关键概念,它涉及到如何管理和协调多个Bean的创建与依赖关系。这里,我们主要探讨的是Spring如何通过其IoC(Inversion of Control)容器来实例化Bean,并理解其背后的逻辑。 ...

    Spring中关于Bean的管理的课件

    4. **Spring的应用上下文(ApplicationContext)**:ApplicationContext是Spring的主要接口之一,它提供了获取Bean、处理消息和事件等功能,是Spring应用中的主要入口点。 5. **构造注入(constructor injection)*...

    spring-aware接口实现与bean作用域(spring多容器层面)

    在Spring框架中,`Spring-Aware`接口是一个重要的概念,它允许我们与Spring的应用上下文(ApplicationContext)进行交互,从而获取或操作由Spring管理的Bean。`ApplicationContextAware`是其中的一个典型接口,当...

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

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

    Spring框架中Bean的生命周期 Spring中Bean有几种作用域

    在Spring框架中,Bean的生命周期管理和作用域是其核心特性之一,它们对于理解Spring如何管理对象的创建、初始化、使用以及销毁至关重要。首先,我们来深入探讨Bean的生命周期。 Spring中的Bean生命周期主要分为两个...

    在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息

    Spring容器是通过`ApplicationContext`接口管理Bean的。要从一个非Spring管理的类中获取Bean,我们需要先创建或获取`ApplicationContext`实例。有多种方式可以做到这一点,例如: 1. 通过`...

    线程中获取spring 注解bean

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

    spring 中特殊bean用法

    在Spring框架中,Bean是核心概念,它代表了应用程序中的对象,这些对象由Spring容器管理其生命周期和依赖关系。特殊Bean用法主要涉及Spring提供的多种高级特性,包括但不限于工厂方法、 prototype scope、AOP代理、...

    spring bean life cycle

    此外,Spring提供了一种名为BeanPostProcessor的接口,它允许我们自定义Bean实例化和初始化过程中的逻辑。通过实现`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,可以在Bean初始化...

    Spring的Bean配置

    Spring框架是Java开发中不可或缺的一部分,它以其控制反转(IoC)和依赖注入(DI)的核心特性,极大地简化了应用程序的构建与管理。在本文中,我们将深入探讨Spring中的Bean配置,包括IoC和DI的概念,Bean的配置方式...

    spring的bean加载顺序样例项目

    - 如果Bean配置了AOP代理,如`@AspectJ`切面或基于接口的代理,那么在Bean实例化后,Spring会创建代理对象,代理对象负责拦截方法调用并执行相关的切面逻辑。 6. **Bean的销毁** - 对于单例Bean,Spring容器在...

    spring在@Bean注解中initMethod调用方法异步

    在Spring框架中,`@Bean`注解是一个关键的组件,用于声明一个方法将返回的对象作为Spring容器中的bean。在`@Bean`中定义`initMethod`属性,可以指定该bean初始化时需要调用的方法。当`initMethod`被设置为异步执行,...

    详解Spring中Bean的生命周期和作用域及实现方式

    在整个生命周期中,Spring提供了多种方式来实现Bean的初始化,例如使用init-method参数、InitializingBean接口等。 二、Bean的作用域 Bean的作用域是指Bean的生命周期和可用性。Spring框架提供了多种作用域,例如 ...

    Spring在应用中获得Bean的方法

    本篇文章将深入探讨如何在Spring应用中获取Bean,以及相关的源码分析和实用工具。 首先,Spring容器(ApplicationContext)是管理Bean的中心,它负责Bean的生命周期和依赖注入。获取Bean主要有以下几种方式: 1. *...

    普元eos-springbean开发

    本文将围绕“普元EOS-SpringBean开发”这一主题展开讨论,重点讲解SpringBean在普元EOS中的开发与配置流程,以及通过具体案例来深入理解其应用场景。 ### SpringBean开发与配置 #### SpringBean简介 SpringBean是...

    Spring--2.Spring 中的 Bean 配置-1

    本文将深入探讨Spring中的Bean配置,主要基于标题"Spring--2.Spring 中的 Bean 配置-1"及其相关的上下文。 首先,我们要理解什么是Bean。在Spring中,Bean指的是由Spring容器管理的对象,这些对象可以通过XML、注解...

    Spring中Bean的生命周期 applicationcontext的应用(实现国际化,事件的传递)

    在Spring框架中,Bean的生命周期管理和ApplicationContext的应用是两个核心概念,它们对于理解Spring如何管理和协调应用中的对象至关重要。本文将深入探讨这两个主题,并结合国际化(i18n)和事件传递来阐述它们在...

Global site tag (gtag.js) - Google Analytics