Spring2.5教程:3、Bean

spring 深入了解bean的创建过程 一、创建bean之初 spring调用 beanFactory.preInstantiateSingletons()此方法完成整个bean生产以及依赖注入,那么在生成bean之前,spring做了哪些事呢? 1.盘点bean定义是否是bean工厂 遍历所有beandefinition 非懒加载以及非抽象bean,单例,去执行AbstractBeanFactory.isFactoryBean(beanName) 方法判断是否是重写 SmartFactoryBean接口的isEagerI... 阅读详情

三种实例化bean的方式(bean为业务bean:像task)

1.使用类构造器实例化,(调用默认的构造函数)

<bean id=“orderService" class="cn.itcast.OrderServiceBean"/>

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

<bean id="personService" class="cn.itcast.service.OrderFactory" factory-method="createOrder"/>

public class OrderFactory {

  public staticOrderServiceBeancreateOrder(){

  return new OrderServiceBean();

  }

}

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

<bean id="personServiceFactory" class="cn.itcast.service.OrderFactory"/>

<bean id="personService" factory-bean="personServiceFactory" factory-method="createOrder"/>

public class OrderFactory {

  public OrderServiceBeancreateOrder(){

  return new OrderServiceBean();

  }

}

 

Bean的作用域(通过scope属性指定)

.singleton (默认下bean是单例模式)

 在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如:

 <bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/>

如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:

<beans default-lazy-init="true“ ...>(不建议使用)

.prototype

 每次从容器获取bean都是新的对象,在第一次获取时初始化。scope="prototype"

 

下面是对应于web应用的

.request

.session

.global session

 

 指定Bean的初始化方法和销毁方法

指定Bean的初始化方法和销毁方法

<bean id="xxx" class="cn.itcast.OrderServiceBean" init-method="init" destroy-method="close"/>

init-method:在bean实例化后会执行init()方法,在bean销毁(即spring容器退出)的时候执行close()

Init初始化方可以对一些资源进行打开等等

业务bean类里有初始化方法init,可以通过" init-method="“来指定初始化方法,来让容器初始化的时候执行。

容器执行顺序:先实例化bean,再执行初始化方法。

spring2.5基于注解开发教程 原为为一篇博文,教程里有附作者资料,特制成pdf来捞点分,不犯法把,呵呵 有分就下 没分找我 邮箱:zhaohanjiangit@qq.com 立即下载

相关推荐

spring2.5教程(传智)

01_全面阐释Spring及其各项功能 02_搭建与测试Spring的开发环境 03_编码剖析Spring管理Bean的原理 04_Spring的三种实例化Bean的方式 05_配置Spring管理的bean的作用域 06_Spring管理的Bean的生命周期 07_编码剖析Spring依赖注入的原理 08_编码剖析Spring装配基本属性的原理 09_Spring如何装配各种集合类

[转]Spring2.5定时任务的多种使用方法总结

这里使用的是Spring2.5,需要的jar包:spring.jar(spring2.5的完全包);quartz-all-1.6.0.jar;还需commons-*.jar。 方法一: 任务调度工作类代码: [code="java"]public class Clock extends TimerTask{ @Override pub...

hanxin的专栏 454

Python介绍与安装

Python介绍与安装

acegi13579的专栏 3219

spring 2.5 ajax,java - Using Ajax to load data in <display:table /> Spring 2.5 - Stack Overflow

my company use Spring 2.5And i have a task to modify it using Ajax technology. I already try to using ajax to save data :$('#klikDeh').click(function() {//alert($('#mtsh').serialize());$.ajax({url: 'i...

weixin_31437143的博客 311

Synopsys 逻辑综合之 ICG

文章摘要: ICG(集成时钟门控单元)是一种用于降低时钟功耗的专用逻辑单元,通过控制时钟信号的传播实现节能。其核心原理是在寄存器前插入门控逻辑(如gclk=clk&en),但需避免直接使用AND门以防止毛刺,转而采用带锁存器的专用ICG单元。在RTL设计中,符合条件(如稳定使能信号)的if(en)结构可被综合工具(如DesignCompiler)自动识别并替换为ICG。使用时需配置时序检查(如PrimeTime分析使能路径、门控时钟延迟),并注意避免组合逻辑使能、多级门控等误区。ICG是芯片低功耗设

Serven的博客 4349

在Ubuntu 18下安装SIMULIA Abaqus 2020

参考资料: https://github.com/imirzov/Install-Abaqus-2019-on-Ubuntu-18.04-LTS 安装环境: Ubuntu 18.4 LTS 软件版本: SIMULIA for Linux 2020 1 准备 安装光盘及破解文件 解压光盘至一目录,不能挂载,因为要修改文件内容 /home/sunwk/Downloads/abaqus2020 更改文件权限为最大 sudo chmod -R 777 abaqus2020/ * 复制libpng12

oak619的博客 1万+

spring2.5配置定时任务

&lt;!-- jobDetail设置该定时任务要执行什么操作,cronExpression设定定时策略。 --&gt; &lt;bean id="phoneSmsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"&gt; &lt;property name="jobDetail" r...

chen_jia_hao的博客 1295

TwinCAT3实战:从零搭建倍福PLC的Modbus-TCP Server

本文详细介绍了如何使用TwinCAT3从零搭建倍福PLC的Modbus-TCP Server,包括环境准备、工程配置、参数设置、客户端连接测试及常见问题排查。通过实战步骤和实用技巧,帮助工程师快速掌握倍福PLC与Modbus-TCP的通信实现,提升工业自动化项目的开发效率。

weixin_30797199的博客 173

深入浅出Spring task定时任务

深入浅出Spring task定时任务在工作中有用到spring task作为定时任务的处理,spring通过接口TaskExecutor和TaskScheduler这两个接口的方式为异步定时任务提供了一种抽象。这就意味着spring容许你使用其他的定时任务框架,当然spring自身也提供了一种定时任务的实现:spring task。spring task支持线程池,可以高效处理许多不同的定时任务。

rhwayfun专栏 7万+

【Python】多分类算法—Random Forest

【Python】多分类算法—Random Forest 本文将主要就Random Forest(随机森林)的多分类应用进行描述,当然也可运用于二分类中 文章目录【Python】多分类算法—Random Forest前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 本文主要引用的是sklearn 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import nump

weixin_43166884的博客 1万+

第4.4节:保护轴承与安全系统

飞轮储能系统的保护轴承是磁悬浮失效时的最后安全屏障,其设计需满足非干涉性、高可靠性和有限寿命承载原则。转子跌落过程包括自由下落、碰撞、进动和滑行减速等复杂非线性阶段,产生远超常规工况的冲击载荷。保护轴承需具备极限冲击容量、高温耐受性和抗卡死能力。系统采用多层级安全架构,结合故障诊断与健康管理,通过监测振动、电流等参数实现预测性维护。安全停机序列有序结合主动制动与被动摩擦制动,确保系统在极端工况下的安全。保护轴承类型多样,需根据系统规模与可靠性要求合理选择。

技术工作者 227

spring2.5.6下配置定时器

applicationContext.xml 代码如下:      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"      xmlns:context="http://www.springframework.org/sc

shiyuezhong的专栏 3706

回归预测 | MATLAB实现MPR多元多项式回归

回归预测 | MATLAB实现MPR多元多项式回归

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 1645

【Spring教程26】Spring框架实战:从零开始学习SpringMVC 之 bean加载控制

入门案例的内容已经做完了,在入门案例中我们创建过一个SpringMvcConfig的配置类,再回想前面 咱们学习Spring的时候也创建过一个配置类SpringConfig。这两个配置类都需要加载资源,那么它们分别都需要加载哪些内容?

2089

基于STM32L4XX、HAL库的AD7768BSTZ 模数转换器ADC驱动程序设计

/ 默认SPI配置。// 读取通道数据命令。// 通过SYNC_IN引脚触发转换(如果使用)// 处理数据...// 或者通过SPI命令。// 初始化AD7768。// SPI1引脚配置。

zhusl6688的博客 461

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

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

Spring5参考指南:Bean作用域

文章目录Bean作用域简介Singleton作用域Prototype作用域Singleton Beans 中依赖 Prototype-beanweb 作用域Request scopeSession ScopeApplication Scope作用域Bean的依赖自定义作用域 Bean作用域简介 Bean是Spring的根本,Spring本身就是一个一个的bean组成的,bean托管在Spring容...

程序那些事 5591

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring高手之路5——彻底掌握Bean的生命周期

在这篇文章中,我们将深入研究Spring Framework的核心部分——Spring Bean的生命周期。我们将探讨初始化和销毁方法,了解如何使用@PostConstruct和@PreDestroy注解,以及实现InitializingBean和DisposableBean接口。我们还将详细讨论原型Bean的生命周期,并最后总结Spring中控制Bean生命周期的三种方式。无论你是Spring新手,还是想进一步提高你的Spring技能,这篇文章都能给你提供有价值的 insights。

卓越无关环境,保持空杯心态——靡不有初,鲜克有终 9014

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring4-IoC2-基于注解管理bean

从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。元素开启 Spring Beans的自动扫描功能。开启此功能后,Spring 会自动从扫描指定的包(base-package 属性设置)及其子包下的所有类,如果类上使用了 @Component 注解,就将该类装配到容器中。Spring 从 2.5 版本开始提供了对注解技术的全面支持,我们可以使用注解来实现自动装配,简化 Spring 的 XML 配置。

m0_73902080的博客 2162

Spring中3种实例Bean的方法及设置Bean的别名

目录 基本概念 代码及演示 对Bean的感悟 基本概念 学习使用Spring实例化Bean 1. 通过构造方法实例化Bean; 2. 通过静态方法实例化Bean; 3. 通过实例方法实例化Bean Spring设置Bean的别名 代码及演示 程序运行截图如下: 程...

IT1995的博客 9171

将Bean注入Spring容器的五种方式

将bean放入Spring容器中有哪些方式? 我们知道平时在开发中使用Spring的时候,都是将对象交由Spring去管理,那么将一个对象加入到Spring容器中,有哪些方式呢,下面我就来总结一下 1、@Configuration + @Bean 这种方式其实也是我们最常用的一种方式,@Configuration用来声明一个配置类,然后使用 @Bean 注解,用于声明一个bean,将其加入到Spring容器中。 具体代码如下: @Configuration public class MyCo..

uuuyy_的博客 5859

2.3 Spring Framework 5.x 之Bean概述

Bean 概述 Bean的命名 给Bean定义别名Bean 实例化Bean 使用构造函数实例化 使用静态工厂方法实例化 使用实例工厂方法实例化

极客星云-优快云博客 887

Spring5源码之Bean操作

2 实体类间表示一对多关系,员工表示所属部门,使用对象类型属性表示.在 spring 配置文件中引入名称空间 util。使用 util 标签完成 list 集合注入提取。2 在service调用dao里面的方法。1 创建两个类service和dao类。3 在spring配置文件里面进行配置。1 一对多关系: 如部门和员工。2 注入List集合类型属性。3 注入Map集合类型属性。4 集合里面设置对象类型值。5 集合注入部分提取出来。1 注入数组类型属性。

ABestRookie的博客 692

手撕源码之Spring中Bean的创建

本文结合源码,讲解了Spring中Bean的创建流程,配合流程图,让读者能更好理解Spring的Ioc容器的本质。

weixin_45749194的博客 881

Spring Boot扫描bean之ClassPathBeanDefinitionScanner

本文源码基于Spring Boot 2.2.8 本文不赘述上下文信息,需要大家自己确定这个过程在Spring Boot启动流程中地位,否则本文的意义将大打折扣。从Spring 2.5开始,用户就可以通过编程的方式注册bean,而不用在xml中通过复杂的方式配置bean,这对当时Spring使用者来说是一个天大的惊喜,终于可以告别动辄几千行甚至几万行的xml配置文件了。而这一功能的核心是在指定路径扫描带指定注解的bean,并根据自动装配注解完成属性注入。这样用户就只用提供一个basePackage路径,然后在

诗人不写诗 4050

透析Spring(二):Spring支持的5种Bean Scope

序言 Scope是定义Spring如何创建bean的实例的。Spring容器最初提供了两种bean的scope类型:singleton和prototype,但发布2.0以后,又引入了另外三种scope类型:request、session和...

Java学习之道 3718
上一篇: Spring2.5教程:2、搭建与测试Spring的开发环境
下一篇: Spring2.5教程:4、注入依赖
风云才智
博客等级 码龄14年 46粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值