`
朱秋旭
  • 浏览: 231008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过实现InitializingBean ,DisposableBean 接口完成初始化和销毁动作

阅读更多

直接用service实现两个接口:

 

package com.myapp.core.annotation.init;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class PersonService  implements InitializingBean,DisposableBean{
  
	private String  message;

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	@Override
	public void destroy() throws Exception {
		// TODO Auto-generated method stub
		System.out.println("I'm  init  method  using implements InitializingBean interface...."+message);
		
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		// TODO Auto-generated method stub
		System.out.println("I'm  init  method  using implements DisposableBean interface...."+message);
		
	}
	

}

 

spring xml :

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">

<!-- <context:component-scan  base-package="com.myapp.core.jsr330"/> -->

<!-- <context:annotation-config /> -->


<!-- <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />
<bean id="personService" class="com.myapp.core.annotation.init.PersonService">
		  <property name="message" value="123"></property>
</bean>
 -->

<bean id="personService" class="com.myapp.core.annotation.init.PersonService">
		  <property name="message" value="123"></property>
</bean>

</beans>

 

测试类:

package com.myapp.core.annotation.init;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainTest {
	
	public static void main(String[] args) {
		
		AbstractApplicationContext  context = new ClassPathXmlApplicationContext("resource/annotation.xml");
		
		PersonService   personService  =  (PersonService)context.getBean("personService");
		
	         context.registerShutdownHook();
	}

}

 

分享到:
评论

相关推荐

    Spring初始化和销毁的实现方法

    我们还可以让 Bean 实现 InitializingBean 和 DisposableBean 接口来实现初始化和销毁逻辑。例如: ```java @Component public class Cat implements InitializingBean,DisposableBean { public Cat(){ System....

    Spring bean初始化及销毁你必须要掌握的回调方法.docx

    下面将详细介绍如何通过不同方式定义Spring Bean的初始化和销毁回调方法。 **初始化回调方法** 1. **@PostConstruct注解** 这个Java标准注解用于标记一个方法,该方法将在对象完全构造后但在业务逻辑执行前被调用...

    spring容器初始化bean和销毁bean之前进行一些操作的方法

    通过实现`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,可以在Bean实例化和初始化之后进行额外操作。 总结起来,Spring提供了多种方式让我们能够在Bean的生命周期中插入自定义...

    Spring Bean初始化及销毁多种实现方式

    我们需要继承 Spring 接口 InitializingBean/DisposableBean,其中 InitializingBean 用于初始化动作,而 DisposableBean 用于销毁之前清理动作。 ```java @Service public class HelloService implements ...

    Spring Bean生命周期.pdf

    Spring框架是Java领域里一个广泛使用的轻量级应用开发框架,它提供了一系列用于简化企业级应用开发的特性。...开发者可以通过实现这些扩展接口或注解来实现自定义的初始化和销毁逻辑,增强应用的灵活性和可维护性。

    bean的生命周期1

    在Spring框架中,Bean的生命周期管理是其核心功能之一,它涉及到Bean的创建、初始化、使用和销毁等各个阶段。以下是对"bean的生命周期1"的详细解释: 1. **指定初始化和销毁方法**: Spring允许我们为Bean定义初始...

    14、加载spring启动首先进入的类方法注解1

    此外,如果你在XML配置中也指定了初始化和销毁方法,那么这些方法也会被调用,除非你明确地禁用了注解处理(通过`@ComponentScan`的`excludeFilters`或`@Configuration`的`@ImportResource`等)。 总之,`@...

    Spring part 2 :Bean的生命周期

    编程式通过实现接口如InitializingBean和DisposableBean,然后重写其特定方法(afterPropertiesSet()和destroy())来控制Bean的初始化和销毁。声明式则是在XML配置文件中使用`init-method`和`destroy-method`属性来...

    浅尝Spring注解开发_Bean生命周期及执行过程.doc

    ingBean 和 DisposableBean 接口 当不使用注解而是通过实现接口的方式来控制 Bean 的生命周期时,可以实现 InitializingBean 和 DisposableBean 接口。这两个接口由 Spring 提供,它们包含两个方法: - ...

    Spring笔记(第三次)1

    其次,bean可以实现`InitializingBean`和`DisposableBean`接口来定义初始化和销毁逻辑。`InitializingBean`有一个`afterPropertiesSet()`方法,在bean的所有属性设置完毕后被调用;`DisposableBean`有一个`destroy()...

    百度-Java面试.pdf

    Bean可以通过实现InitializingBean和DisposableBean接口,或者在配置文件中定义init-method和destroy-method来声明初始化和销毁回调方法。另外,Spring 3.0引入的注解@PostConstruct和@PreDestroy也可以标记初始化和...

    Springboot启动扩展点详细总结.docx

    理解这些阶段,可以让我们更好地利用自动装配,定制 Bean 的初始化和销毁行为,例如通过 @PostConstruct 和 @PreDestroy 注解来指定初始化和销毁方法。 2. **ApplicationContextInitializer** 在 Spring 容器初始...

    Spring.pdf

    - 实现了InitializingBean接口的Bean,可以自定义afterPropertiesSet方法来进行初始化操作。 - 实现了DisposableBean接口的Bean,可以自定义destroy方法来定义销毁行为。 除此之外,还可以通过XML配置文件或者注解...

    day38 09-Spring类的完整生命周期及后处理Bean

    Bean可以通过实现InitializingBean接口并覆盖`afterPropertiesSet()`方法,或者定义一个`init-method`属性指定初始化方法。此外,如果Bean实现了ApplicationContextAware接口,Spring会在初始化时注入...

    Bean的生命周期介绍

    5. **实现InitializingBean接口**:另一种自定义初始化逻辑的方式是让Bean实现`InitializingBean`接口并覆盖`afterPropertiesSet()`方法。 - 上文中`Cat`类实现了`InitializingBean`接口,并在`afterPropertiesSet...

    srping5.zip

    开发者可以通过实现`InitializingBean`接口或使用`@PostConstruct`注解定义初始化方法,通过实现`DisposableBean`接口或使用`@PreDestroy`注解定义销毁方法。 线程(Thread)是Java多线程编程的基础,它代表了程序...

    基于java的企业级应用开发:Bean的生命周期.ppt

    - 如果Bean实现了`InitializingBean`接口,Spring会调用`afterPropertiesSet()`方法,标志着Bean初始化的结束。 6. **自定义初始化和销毁方法**: - 开发者可以自定义初始化方法,通过在Bean定义中指定`init-...

    Spring源码学习八:常用的扩展接口详解1

    `InitializingBean`接口包含一个`afterPropertiesSet()`方法,它会在Bean的所有属性被设置好之后被调用,用于执行初始化任务。这与在配置文件中通过`init-method`指定的方法类似,但`afterPropertiesSet()`方法会先...

    Spring bean生命周期demo

    `MyBean`实现了`InitializingBean`和`DisposableBean`接口,以及自定义的初始化和销毁方法,以便在生命周期的不同阶段执行特定操作。 总之,理解和掌握Spring Bean的生命周期对于开发高质量、易于维护的应用至关...

    详解如何在低版本的Spring中快速实现类似自动配置的功能

    可以通过实现InitializingBean接口、使用@PostConstruct注解、指定init-method,以及实现DisposableBean接口、使用@PreDestroy注解、指定destroy-method来分别控制Bean初始化和销毁时的行为。 2. **XxxAware接口**...

Global site tag (gtag.js) - Google Analytics