022 使用@Bean的属性完成初始化和销毁的指定

一 .概述

Bean的生命周期就是指,Bean的创建,初始化,销毁的整个过程.

spring帮助我们实现整个过程,但是提供了很多的回调接口,我们

可以自己定义这些方法.

一共有四种方式可以实现这些.



二 . 使用 init-method 来实现.

组件:

public class Person {

    public Person() {
        System.out.println("构造器在创建对象");
    }

    public void init() {
        System.out.println("我是init方法");
    }

    public void destroy() {
        System.out.println("我是销毁方法");
    }
}

配置类:

@Configuration
public class LifeConfig {

    @Bean(initMethod="init",destroyMethod="destroy")
    public Person person() {
        return new Person();
    }
}

我们使用@Bean注解的使用完成指定初始化和销毁方法.

测试类:

public class LifeTest {
    private static AnnotationConfigApplicationContext context = null;

    @Before
    public void init() {
        context = new AnnotationConfigApplicationContext(LifeConfig.class);
    }

    @Test
    public void test1() {
    }

    @After
    public void close() {
        context .close();
    }
}

这种方式很不错.没有什么侵入性.



三 .实现接口完成

[1]初始化 实现InitializingBean接口

[2]销毁实现 DisposableBean接口

这里不做演示,因为侵入性的方式我们不喜欢用的.



四 .使用JSR-250的方式

我们也不喜欢去使用,最起码导入这个包就已经够烦人了.

@PostConstroct 注解  @PostConstruct 注解完成

我们也在这里说一下就可以了.

原文地址:https://www.cnblogs.com/trekxu/p/9094876.html

时间: 2024-10-17 18:50:32

022 使用@Bean的属性完成初始化和销毁的指定的相关文章

spring实战装配bean之Bean的作用域以及初始化和销毁Bean

1.Bean的作用域 所有的spring bean默认都是单例.当容器分配一个Bean时,不论是通过装配还是调用容器的getBean()方法,它总是返回Bean的同一个实例.有时候需要每次请求时都获得唯一的Bean实例,那么就需要覆盖Spring默认的单例配置.当在Spring中配置<bean>元素时,可以为bean声明一个作用域.为了让spring在每次请求时都为bean产生一个新的实例,只需要配置bean的scope属性为prototype即可.如下所示: <bean id=&quo

Spring学习笔记--初始化和销毁Bean

可以使用bean的init-method和destroy-method属性来初始化和销毁bean.定义一个Hero类: package com.moonlit.myspring; public class Hero { public void born() { System.out.println("the hero is born."); } public void defaultBorn() { System.out.println("the hero is born b

Spring IOC - 控制反转(依赖注入) - 配置初始化和销毁的方法

在Spring中如果某个bean在初始化之后,或销毁之前要做一些额外操作可以为该bean配置初始化和销毁的我方法,在这些方法中完成需要的功能. 实验: 通过断点调试模式,测试初始化方法和销毁方法的执行 package cn.tedu.beans; public class ProdDao { public ProdDao() { System.out.println("ProdDao 被创建..."); } public void init() { System.out.println

几种自定义Spring生命周期的初始化和销毁方法

Bean 的生命周期指的是 Bean 的创建.初始化.销毁的过程.Spring 提供了一些方法,可以让开发自定义实现在生命周期过程中执行一些额外操作. 1.在注解 @Bean 中指定初始化和销毁时执行的方法名. @Component public class Cat { public Cat() { System.out.println("new Cat()"); } void initMethod() { System.out.println("调用init初始化*****

Spring IoC源码解析——Bean的创建和初始化

Spring介绍 Spring(http://spring.io/)是一个轻量级的Java 开发框架,同时也是轻量级的IoC和AOP的容器框架,主要是针对JavaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,MyBatis框架等组合使用. IoC介绍 IoC是什么 Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控

Spring中bean的作用域与bean的初始化与销毁

bean的作用域 通过在配置bean时,指定bean元素的scope来指定该bean的作用域 scope的默认值是singleton,即单例模式,在一个ApplicationContext中,每次调用getBean()方法,获取的都是同一个bean. 如果要使每次获取的bean 都不相同可以指定scope的值为prototype,那么每次调用getBean()都会获得一个新的bean Scope还可以去request指在一次Http请求中为单例 session在整个session范围中是单例的

[原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Spring核心学习(3)为Bean注入属性

前导:开始学习Spring核心思想,通过一个山寨精简版Spring代码结合学习. 内容:1.Propertyvalue-保存属性注入信息.2.AutowireCapableBeanFactory-可自动装配的BeanFactory. 这里我们重新定义了BeanDefinition,增加了属性列表这个字段,我们将为bean附加额外的属性,所以我们又定了PropertyValues.PropertyValue来辅助,当我们为bean定义的时候同时设置他的属性,通过反射机制来动态的附加到bean里,来

Spring中Bean初始化和销毁方法的几种配置方式

在Bean的生命周期中,Spring可以设置在Bean初始化之后以及在销毁之前要执行的方法. 主要设置方式有以下几种: 通过实现InitializingBean/DisposableBean 接口并重写afterPropertiesSet()/destroy()方法: 通过<bean> 标签的 init-method/destroy-method属性指定: 通过在指定方法上加@PostConstruct或@PreDestroy注解来指定: 通过<beans>标签的 default-