伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

初始化Spring Bean:Bean初始化有哪些方式?

来源:本站原创 浏览:61次 时间:2023-01-30

对于Spring Bean 的初始化归纳了下,主要可以归纳一下三种方式

  • @PostConstruct 标注方法

  • 自定义初始化方法

  • 实现 initializingBean 接口的afterPropertiesSet()方法

对JDK比较敏感的朋友应该知道@PostConstruct这种标注方法。是从JDK1.6开始引入的

@Documented
@Retention (RUNTIME)
@Target(METHOD)
public @interface PostConstruct {
}

案例

一、@PostConstruct 标注方法实现

public interface UserFactory {
    default User createUser() {
        return User.createUser();
    }
}


public class DefaultUserFactory implements UserFactory{
    // 1. 基于 @PostConstruct 注解
    @PostConstruct
    public void init() {
        System.out.println("@PostConstruct : UserFactory 初始化中...");
    }
}


简单进行容器创建->装置配置->启动应用上下文..依赖查找Bean

@Configurable
public class BeanInitializationDemo {
    public static void main(String[] args) {
        // 创建 BeanFactory 容器
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
        // 注册 Configuration Class(配置类)
        applicationContext.register(BeanInitializationDemo.class);
        // 启动 Spring 应用上下文
        applicationContext.refresh();
        // 非延迟初始化在 Spring 应用上下文启动完成后,被初始化
        System.out.println("Spring 应用上下文已启动...");
        // 依赖查找 UserFactory
        UserFactory userFactory = applicationContext.getBean(UserFactory.class);
        System.out.println(userFactory);
        System.out.println("Spring 应用上下文准备关闭...");
        // 关闭 Spring 应用上下文
        applicationContext.close();
        System.out.println("Spring 应用上下文已关闭...");
    }
    @Bean
    public UserFactory userFactory() {
        return new DefaultUserFactory();
    }
}



二、自定义初始化方法

自定义初始化方法大致可分为三种实现

    • XML 配置:<bean init-method=”init” ... />

    • Java 注解:@Bean(initMethod=”init”)

    • Java API:AbstractBeanDefinition#setInitMethodName(String)

这里简单以Java 注解方法实现为案例

Java 注解自定义实现



三、实现 initializingBean 接口的afterPropertiesSet()方法



归纳

上面三种方式案例分别介绍了PostConstruct、initializingBean以及自定义Bean初始化的方法;从执行结果可以看出,他们的执行顺序是有一定的要求的。PostConstruct在前,initializingBean 在后,最后才是我们自定义的方法

源码地址:https://gitee.com/iByteCoding/thinking-in-spring



  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net