SpringBean的配置详解 --中

 

目录

Bean的初始化和销毁方法配置

 Bean的初始化和销毁方法配置

 扩展

 Bean的实例化


Bean的初始化和销毁方法配置

当lazy-init设置为true时为延迟加载,也就是当Spring容器加载的时候,不会立即创建Bean实例,等待用到时再创建Bean实例并存储到单例池中,后续在使用Bean直接从单例池获取即可,本质上Bean还是单例的

  <bean  id="userDao" name="dao" class="com.xfy.dao.Impl.UserDaoImpl" lazy-init="true"  ></bean>

 Bean的初始化和销毁方法配置

Bean在被实例化后,可以执行指定的初始化方法完成一些初始化的操作,Bean在销毁之前也可以执行指定的销毁方法完成一些操作

 <bean  id="userDao" name="dao" class="com.xfy.dao.Impl.UserDaoImpl" lazy-init="true" init-method="init" destroy-method="destroy" ></bean>

public class UserDaoImpl implements UserDao{public UserDaoImpl() {System.out.println("UserDaoImpl无参方法执行");}public  void  init(){System.out.println("初始化完成");}public  void destroy(){System.out.println("快销毁了");}public void run() {System.out.println("run》》》》》》");}
}
 扩展

除此之外,我们还可以通过实现InitializingBean接口,完成一些Bean初始化操作

package com.xfy.dao.Impl;import com.xfy.dao.UserDao;
import org.springframework.beans.factory.InitializingBean;public class UserDaoImpl implements UserDao,InitializingBean{public UserDaoImpl() {System.out.println("UserDaoImpl无参方法执行");}public  void  init(){System.out.println("初始化完成");}public  void destroy(){System.out.println("快销毁了");}public void run() {System.out.println("run》》》》》》");}
//在属性设置之后public void afterPropertiesSet() throws Exception {System.out.println("afterPropertiesSet.....");}
}
 Bean的实例化
    <bean  id="userDao" name="dao" class="com.xfy.dao.Impl.UserDaoImpl" lazy-init="true" >
<!--        构造参数--><constructor-arg name="name" value="xfy"></constructor-arg></bean>//有参构造方法public UserDaoImpl(String name) {System.out.println("UserDaoImpl无参方法执行");}//默认为无参构造方法

 工厂方法实例化:底层通过调用自定义的工厂方法对Bean进行实例化

  • 静态工厂方法实例化Bean

<bean id="userDao1" class="com.xfy.factory.MyBeanFactory1" factory-method="userDao"></bean>

package com.xfy.factory;import com.xfy.dao.Impl.UserDaoImpl;
import com.xfy.dao.UserDao;public class MyBeanFactory1 {public static UserDao userDao(){
//        Bean创建之前可以进行一些其它操作return  new UserDaoImpl();}
}有参:<bean id="userDao1" class="com.xfy.factory.MyBeanFactory1" factory-method="userDao"><constructor-arg name="name" value="xfy"></constructor-arg></bean>

 实例工厂方法实例化Bean

package com.xfy.factory;import com.xfy.dao.Impl.UserDaoImpl;
import com.xfy.dao.UserDao;
//实例化工厂方法
//与静态工厂方法不同的是实例化工厂调用方法的前提是要有一个实例化的对象,调用非静态方法
public class MyBeanFactory2 {public  UserDao userDao(){
//        Bean创建之前可以进行一些其它操作return  new UserDaoImpl();}
}

<!--    实例化一个对象--><bean class="com.xfy.factory.MyBeanFactory2" id="beanFactory2"></bean>
<!--    实现实例化工厂--><bean id="userDao2" factory-bean="beanFactory2" factory-method="userDao"></bean>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【鸿蒙应用ArkTS开发系列】- 云开发入门实战一使用鸿蒙登录组件实现客户端登录

目录 概述使用云端一体化开发模板创建项目工程创建登录入口页面集成登录SDK组件依赖登录组件SDK使用登录组件SDK 开启“手机号码”和“邮箱地址”认证方式 概述 通过本次课程&#xff0c;我们将学习怎么使用云端一体化开发模板来创建云开发工程&#xff0c;以及如何使用鸿蒙登…

外卖小程序系统:数字化餐饮的编码之道

在当今数字化时代&#xff0c;外卖小程序系统成为了餐饮业的一项技术巨制。这个系统不仅提供了便捷的点餐体验&#xff0c;更通过先进的技术手段&#xff0c;实现了高效订单处理、实时配送追踪以及个性化推荐。让我们深入了解外卖小程序系统的技术魔法&#xff0c;一起揭秘数字…

SSL加密

小王学习录 今日摘录前言HTTP + SSL = HTTPSSSL加密1. 对称加密2. 非对称加密 + 对称加密3. 证书今日摘录 但愿四海无尘沙,有人卖酒仍卖花。 前言 SSL表示安全套接层,是一个用于保护计算机网络中数据传输安全的协议。SSL通过加密来防止第三方恶意截取并篡改数据。在实际应用…

腾讯云标准型S5云主机性能评测_CPU内存_带宽系统盘测评

腾讯云服务器CVM标准型S5实例具有稳定的计算性能&#xff0c;CVM 2核2G S5活动优惠价格280.8元一年自带1M带宽&#xff0c;15个月313.2元、2核4G配置748.2元15个月&#xff0c;CPU内存配置还可以选择4核8G、8核16G等配置&#xff0c;公网带宽可选1M、3M、5M或10M&#xff0c;腾…

基于STM32CubeMX和keil采用RTC时钟周期唤醒和闹钟实现LED与BEEP周期开关

文章目录 前言1. RTC概念1.1 RTC的时钟信号源1.2 预分频器1.3 实时时钟与日历数据1.4 周期性自动唤醒1.5 可编程闹钟 2. RTC相关中断3. STM32CubeMX配置3.1 时钟配置3.2 引脚配置3.3 RTC配置3.3.1 模式选择3.3.2 RTC基本参数配置3.3 中断配置 4. 代码编写总结 前言 RTC的功能有…

Spring Boot中使用AOP统一处理Web请求日志

AOP AOP&#xff0c;也就是 Aspect-oriented Programming&#xff0c;译为面向切面编程&#xff0c;是计算机科学中的一个设计思想&#xff0c;旨在通过切面技术为业务主体增加额外的通知&#xff08;Advice&#xff09;&#xff0c;从而对声明为“切点”&#xff08;Pointcut…

1.0 Zookeeper 教程

分类 Zookeeper 教程 ZooKeeper 是 Apache 软件基金会的一个软件项目&#xff0c;它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&…

最长公共子串 动态规划

#include<iostream> #include<string.h> #include<stdio.h> #include<math.h> using namespace std; int main(){ string s1,s2; cin>>s1>>s2; if(s1.size() > s2.size()) //以短的作为s1 swap(s1,s2); int le…

详细讲解什么是观察者模式

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象&#xff0c;当主题对象状态发生变化时&#xff0c;所有依赖于它的观察者都会得到通知并自动更新。 该模…

Git 服务器搭建

目录 1、安装Git 2、创建证书登录 3、初始化Git仓库 4、克隆仓库 上一章节中我们远程仓库使用了 Github&#xff0c;Github 公开的项目是免费的&#xff0c;2019 年开始 Github 私有存储库也可以无限制使用。 当然我们也可以自己搭建一台 Git 服务器作为私有仓库使用。 接…

COCO格式转化为YOLOv8格式

COCO格式转化为YOLOv8格式 目录格式代码 目录格式 yolov8仅支持YOLO格式的标签&#xff0c;COCO的默认标签为JSON格式&#xff0c;所以需要将COCO格式转换为YOLO格式。 如果训练COCO数据集的话一定要按照这个格式&#xff0c;摆放目录images&#xff0c;labels这两个目录名不…

学习c#的第二十三天

目录 C# 委托&#xff08;Delegate&#xff09; 委托概述 使用委托 带有命名方法的委托与匿名方法 示例 如何合并委托&#xff08;多播委托&#xff09; 示例 如何声明、实例化和使用委托 示例 C# 委托&#xff08;Delegate&#xff09; 委托是一种引用类型&#xff…

公网环境固定域名异地远程访问内网BUG管理系统

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

浅谈 JVM GC 收集器--系列(一)

又到一年大促时刻&#xff0c;今天我们一起探讨下JVM垃圾回收的问题&#xff0c;写代码的时候想一想如何减少FullGC问题的出现&#xff0c;因为一旦出现频繁FullGC&#xff0c;短时间内没有太好的解决办法&#xff0c;很有可能重启后服务接着FullGC&#xff0c;导致服务可用率降…

【探索嵌入式虚拟化技术与应用】— 虚拟化技术深入浅出自学系列

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏:【探索嵌入式虚拟化技术与应用】&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 一、虚拟技术的发展历史 1.1传统技术的局限性&#xff1a; ​编辑 1.2云计算和万物互联技术的发展机遇&#x…

万宾科技智能井盖传感器,预防城市道路安全

随着城市交通的不断发展和城市化进程的加速推进&#xff0c;城市道路安全问题日益凸显。市政井盖作为城市道路的一部分&#xff0c;承担着重要的交通安全保障职责。然而传统的市政井盖管理方式存在许多不足。针对这些问题政府需要采取适当的措施&#xff0c;补足传统管理方式的…

react原理及合成事件原理

文章目录 react的理解react创建组件的三种写法react的工作原理初始化的渲染流程。页面更新的流程。diffing 算法计算更新视图diff策略 react合成事件原理一、React合成事件的概念二、React合成事件的原理三、React合成事件的优势四、React合成事件的使用方法五、总结 react的理…

小型机加工工厂MES系统选型指南

随着制造业的不断发展&#xff0c;越来越多的企业开始关注生产过程的管理和优化。对于小型机加工工厂来说&#xff0c;选择一款合适的MES系统&#xff08;制造执行系统&#xff09;能够显著提高生产效率、降低成本、优化资源利用&#xff0c;从而在激烈的市场竞争中脱颖而出。 …

HTTP之常见问答

1&#xff1a;HTTP/1.1 如何优化&#xff1f; &#xff1a;尽量避免发送 HTTP 请求&#xff1b;通过缓存技术&#xff0c;使用请求的 Etag 参数来处理判断缓存过期等问题&#xff0c;类似304状态码就是告诉客户端&#xff0c;缓存有效还能继续使用 &#xff1a;在需要发送 HTTP…

创建域名邮箱邮件地址的方法与步骤

如何创建域名邮箱邮件地址?使用Zoho Mail创建域名邮箱邮件地址的步骤简单易懂&#xff0c;操作便捷。从其他邮箱迁移到Zoho Mail的过程也相当顺畅&#xff0c;您可以轻松为所有员工创建具有企业邮箱域名的电子邮件地址。 步骤1&#xff1a;添加并验证您的域名 首先&#xff0c…