Spring中bean初始化的三种方式

Spring Bean初始化终极指南:三种核心方式与执行顺序深度解析 Spring框架提供了三种Bean初始化方式: 1️⃣ @PostConstruct注解(JSR-250标准)实现解耦初始化; 2️⃣ InitializingBean接口提供早周期回调; 3️⃣ init-method配置支持完全解耦的初始化方法。 执行顺序为:@PostConstruct → InitializingBean → init-method。建议优先使用@PostConstruct和init-method以降低耦合,保留InitializingBean用于特殊时序需求。三种方式可组合使用,开 阅读详情

 (1)配置文件

   <!-- 1.构造方法实例化bean -->
    <bean id="book" class="service."/>

    <!-- 2.使用静态工厂方法实例化bean ,由于方法是static,可以通过类名调用方法,所以实例化抽象工厂-->
    <bean id="person" class="service.ServiceFactory" factory-method="getPersonInstance" ></bean>

    <!-- 3.使用实例化工厂方法(非静态工厂方法)实例化bean:实例化bean之前先要实例化工厂需要配置两个bean -->
     <bean id="serviceFactory_notstatic" class="service.ServiceFactory_notstatic"/>
     <bean id="userService" factory-bean="serviceFactory_notstatic" factory-method="getUserServiceInstance"/>
     

1、构造方法实例化bean

public class Book{
    
    public Book()
    {
        System.out.println("------Book--------");
    }

}

2.使用静态工厂方法实例化bean

public class Person {

  //系统默认添加无参数构造方法、自己加也行

}

/**
 * 工厂方法,专门实例化bean
 * @author lion
 *
 */

public class ServiceFactory {
    
    /**
     * 以后该类中会定义很多这些创建bean的实例的方法
     * @return
     */

    public static PersongetPersonServiceInstance()
    {
        System.out.println("----------getPersonServiceInstance-------------");
        return new Person();
    }

}
 

3.使用实例化工厂方法实例化bean

/**
 * 非静态工厂方法,专门实例化bean
 * @author lion
 *
 */

public class ServiceFactory_notstatic {
    
    public UserService getUserInstance()
    {
        System.out.println("-------getUserInstance-------");
        return new User();
    }

}

/**
 * 创建User类
 * @author lion
 *
 */

public class User{

}
 

 

我用两个月时间,终于把优快云付费资源项目玩明白了! 关于项目的定位,这是一个知识付费项目,根据市场研究机构的数据显示,到2023年,全球知识付费市场规模将达到2000亿美元,所以说知识付费的前景是十分广阔的,当下互联网时代信息大爆炸,80后、90后、00后群体对知识付费的认可度也大幅提升,同时这群作为知识付费的主流人群已经具备了更强的消费能力,而且对于知识付费的需求更高。目前整个知识付费领域仍然在发展起步的初期,尽快在知识付费领域布局可以帮助我们在这波红利中获得一份不错的收益。而且个人认为, 阅读详情

相关推荐

在摩尔线程 MTT S80 上使用 Ollama 进行 DeepSeek R1 蒸馏版模型推理

本文主要介绍了如何在摩尔线程 MTT S80 上通过 Ollama 快速完成DeepSeek R1 蒸馏系列模型的推理。

摩尔线程blog中心 3597

Spring初始化bean的三种方式 详细版

Spring初始化bean的方式有三种 1 xml配置init-method 2 实现InitializingBean 接口 3 注解 @postConstruct 详细教程开始 1 xml配置init-method 创建User类 public class User { private static final String defaultName="Join"; private String name; private int age=Integer.MIN_VALUE;

weixin_45473138的博客 2820

SAP PO开发-端到端配置

1.登录PO系统,选择system landscape,将外围系统的系统信息(Software Component以下简称SC)注册到PO系统中。2.点击products注册外围系统信息。3.选择New 新建 按钮:创建一个新的系统和版本。4.输入产品名称、供应商、版本号等信息。然后点击:Next。5.设置instance 名称,然后点击Next。6.最后设置软件组件的名称,然后点击Finish。

P9QCer的博客 1575

Spring中Bean初始化的三种方法

常用的设定方式有以下三种: 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法; 通过 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法; 在指定方法上加上@PostConstruct 或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前调用。 pu

和大黄的博客 4万+

企业微信消息推送API实战:5步搞定可信IP与域名配置(含Python代码示例)

本文详细解析了企业微信消息推送API实战中的关键配置步骤,特别是可信IP与可信域名的配置流程。通过5个清晰步骤,结合Python代码示例,指导开发者快速完成安全通信链路搭建,避免常见错误,确保消息推送服务稳定可靠。

qsc9012345的博客 995

零基础玩转华为AP 4050DN-HD:FAT模式家庭无线网络配置实战

本文为零基础用户提供华为AP 4050DN-HD从FIT模式转换为FAT模式的完整实战教程。详细介绍了固件升级、模式转换以及配置家庭无线网络(包括路由、DHCP、Wi-Fi和NAT)的每一步操作,帮助用户将企业级瘦AP改造为高性能家庭胖AP,打造稳定可靠的家庭网络环境。

weixin_29196613的博客 629

Spring初始化bean的三种方式(构造函数,静态工厂,实例工厂)

当我们使用 Spring 框架时,最常见的任务之一就是初始化 Bean。Bean 是 Spring 框架的核心概念之一,它代表了应用程序中的一个对象,可以是任何 Java 对象。以下介绍Spring实例化bean的三种方式。

apple_52793577的博客 1626

B3640 T3 句子反转

要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。第一次做的时候0分,两个小时没做出来。仅一行,表示程序对句子的处理结果。仅一行,即需要反转的句子。

小前日记 366

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

对于Spring Bean 的初始化归纳了下,主要可以归纳一下三种方式 @PostConstruct 标注方法 自定义初始化方法 实现 initializingBean 接口的afterPropertiesSet()方法 对JDK比较敏感的朋友应该知道@PostConstruct这种标注方法。是从JDK1.6开始引入的 @Documented @Retention(RUNTIME) @Target(METHOD) public@interfacePostConst...

码农架构 2650

博途PLC信号处理系列之卡尔曼滤波程序(Kalman Filter)

三菱系列PLC的卡尔曼滤波程序,可以参看下面这篇博文PLC滤波算法之卡尔曼滤波(kalmanFilter)代码+测试_RXXW_Dor的博客-优快云博客_plc滤波kalman滤波是采用递归的方法解决线性滤波问题,只需要当前的测量值input(西门子PLC里比如我们的模拟量通道AIW0值)和前一个采样周期的估计值(上一个时刻的滤波输出结果last_out)就能进行状态估计,需要的存储空间小,每一步的计算量小。下面我们通过程序代码一一给大家展示下。注意。......

RXXW_Dor的博客 3475

【GlobalMapper精品教程】006:Excel表格(.xls)或文本(.txt .csv)坐标文件生成矢量点

原始的坐标数据如下图所示,其中坐标为Lat经度,LNG纬度,均为十进制度的形式,一般软件都支持十进制度的格式,如果不支持,你可以尝试使用度分秒的形式,图中的DDMMSS-LAT为纬度,DDMMSS-LNG为经度。打开globalmapper软件,点击【打开数据文件】,选择坐标数据文件(案例中的数据位配套实验数据包中的data006.rar)气象台站分布点坐标.xls。选择坐标系:本案例数据采用的是经纬度,因此选择Geographic(Latitude/Longitude),基准选择WGS84,点击确定。

智慧空间实验室 2569

Sprng Bean 初始化的三种方式?

Spring Bean 初始化的三种方式1. @PostConstruct 方式2. 实现 InitialzingBean 接口的 afterPropertiesSet() 方法3. 自定义初始化方法 创建一个实体类 DefaultFactory.class public class DefaultUserFactory implements InitializingBean { // 1. 基于 PostConstruct 注解 @PostConstruct public vo

weixin_40007779的博客 414

一文掌握DrissionPage的详细使用

是一个基于 Python 的网页自动化工具,主要用于网页数据的抓取、自动化操作和测试。它结合了 Selenium 和 Requests 的优点,提供了更简洁、高效的 API,适用于各种网页自动化任务。DrissionPage 是一个功能强大且易于使用的网页自动化工具,适用于各种网页自动化任务。希望本文的 DrissionPage 的基本使用方法和一些高级功能能够帮助到你。

数据知道的博客 1万+

Spring Bean初始化三种常用方式(详细易懂版)

掌握这三种方式的核心逻辑和适用场景,能帮助你在实际开发中灵活处理Bean的初始化需求,避免踩坑

码刀攻城 1701

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring初始化Bean的三种方式

常用的设定方式有以下三种: 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法; 通过 &lt;bean&gt; 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法; 在指定方法上加上@PostConstruct 或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前...

菜鸟腾飞 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

spring三种Bean的初始化和销毁方式

Maven搭建好项目贴上依赖&lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-context&lt;/artifactId&gt; &lt;version&gt;4.3.2.RELEASE&amp

GaoChenXi 2765

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring Bean 初始化的三种方式

常用的设定方式有以下三种: 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法; 通过 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法; 在指定方法上加上@PostConstruct 或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前调用。 

hk_优快云的博客 5177

spring-bean生命周期之初始化和销毁的三种方式

https://mp.weixin.qq.com/s?__biz=MzAxMjY1NTIxNA==&mid=2454441970&idx=1&sn=55a4491608d6f05a5a406b73024bbc6d&chksm=8c11e0f3bb6669e54a1499a2aad09d38ceb68d40a88dfd89bd53de0fbe84238fa45caf7...

晓梦初醒的博客 390

17、Spring初始化Bean的三种方式

Spring Bean实例的创建方式以及依赖配置 创建Bean通常有三种方法: 1、调用构造器创建; 2、静态工厂创建; 3、实力工厂创建。 A、构造器创建:最常用使用设置注入的方式,要求该类提供无参构造器。这种情况下,class元素是必须的,除非采用继承,class属性值就是Bean的实现类。     Java代码如下:     public interface Person{

u010724583的专栏 792

spring bean的初始化和销毁的三种方式

1、初始化和销毁bean的第一种方式:第一步:在XML文件中创建的bean中添加init-method和destroy-method配置项第二步:在XML文件中创建init-method和destroy-method配置项所对应值(即方法名)的方法如下面的start()和stop()方法 import org.springframework.beans.factory.Disp...

weixin_30596343的博客 180

Spring中bean初始化与销毁的三种方式

一、生命周期 定义 初始化 使用 销毁 二、初始化与销毁的三种方式 1. 实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法 首先beans.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xml...

kjgym的博客 349

Spring Bean 生命周期全解析:初始化、销毁与三种方式的执行顺序实战

本文详细探讨了Spring框架中Bean生命周期的管理方式,主要包括三种实现方法:1)通过init-method和destroy-method配置;2)使用JSR-250规范的@PostConstruct和@PreDestroy注解;3)实现InitializingBean和DisposableBean接口。文章通过代码示例展示了这三种方式在单例Bean和原型Bean中的不同表现,重点分析了它们的执行顺序(注解→接口→配置方法)以及各自的特点和适用场景。同时,文章还揭示了原型Bean生命周期管理的特殊性。

一起交流学习吧! 1475

Spring在Bean初始化的时候给Bean中的成员变量赋值的三种方式

1.Bean类实现InitializingBean接口,重写里面的afterPropertiesSet()方法,在方法中对属性赋值 public class InitialTest implements InitializingBean { private String str; public InitialTest(){ System.out.println(“空参方法调用”); }; public String getStr() { return this.str; } @Override pu

naiqingming的博客 2960

Spring——bean生命周期的初始化与销毁的三种方式

1、Bean的生命周期 Bean的定义:在Spring的bean的配置文件(xml文件)中为bean定义id和class Bean的初始化:在IOC容器启动时加载bean配置文件里的bean,并初始化,生成bean的实例 Bean的使用:在单元测试或实际开发中从bean容器中取出一个bean的实例,然后调用它的方法 Bean的销毁:在bean容器停止的时候去销毁由当前这个bean容器创建的所有的bean的实例 重点是bean的初始化和销毁。 2、bean的初始化 初始化bean有两种方式.

b15735105314的博客 538

spring 容器初始化 bean 和销毁三种方式

Spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作。下面是常用的三种指定特定操作的方法: 通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法; 通过<bean> 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法; 在指定方法上加上@PostCon...

lisheng19870305的专栏 722

spring 容器初始化 bean 和销毁三种方式

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二种是:通过 在xml中定义init-method 和  destory-method方法 第三种是: 通过bean实现InitializingBean和 DisposableBean接口 ...

iteye_5347的博客 756
上一篇: Spring的注解(总结)
下一篇: Spring中bean生命周期(浅显易懂)
AN_MIN
博客等级 码龄10年 12粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值