关于Spring中工厂Bean

Spring初探之bean工厂(上) Spring是什么?Spring的中文名是春天,它是软件开发人的春天,是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。我以一个简单的示例解构spring是怎样管理java对象的。 首先,定义一个简单的pojo,代码如下: package com.jvk.ken.spring; public class Demo { private String name; p 阅读详情

beans.xml设置

<!-- 配置工厂Bean -->
<bean id="count" class="工厂Bean.TestFactoryBean">
    <property name="targetClass" value="工厂Bean.TEST"></property>
    <property name="targetField" value="string1"></property>
</bean>

工厂Bean类:TestFactoryBean(注意工厂Bean类必须继承FactoryBean接口并实现getObject()、getObjectType()、isSingleton()方法)

private String targetClass;//目标类名
private String targetField;//目标字段名
...
//实例化工厂Bean时将会获取getObject()方法的返回值
public Object getObject() throws Exception {
	Class<?> clzz=Class.forName(targetClass);//加载目标类
	Field field=clzz.getField(targetField);//获取目标字段域
	// TEST t=new TEST();
	// return field.get(t);
	return field.get(null);
}

此处field.get()补充说明一下:

JDK帮助文档中描述:返回指定对象上此Field 表示的字段的值。意思为从指定对象中获取field所指向的字段,此例中field指向“string1”字段;若此字段为static,则应该通过field.get(null)获取目标字段值,因为静态字段是公有的,并不为特定对象所有。若不为static则应该为get()方法传入指定的对象,如上述代码:

TEST t=new TEST();
return field.get(t);
获取的是t对象中的"string1"字段值。


目标类:工厂Bean.TEST

public class TEST {
	public static String string1="233";
	public String string2="333";
	public TEST(){}
	public TEST(String string1){
		this.string1=string1;
	}
}


主函数

public class MainProgram {
	public static void main(String[] args) {
		ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
		System.out.println(ac.getBean("count"));//实例化Bean,获取返回值
		System.out.println(ac.getBean("&count"));//实例化bean,获取该Bean本身
	}
}

加载Spring配置文件,实例化id="count"的Bean,Spring容器检测到该Bean实现类实现了FactoryBean接口,故返回

实现类中getObject()方法的返回值。


【Creo】关于Creo一换网络就报错许可证丢失问题解决方案 依照我的个人理解,Creo只要一更换网络,则其许可证里面的网卡参数和现在的网络就对不上了,所以就会出现报错,并且有可能是报错代码(-9),提示许可证激活有问题。 阅读详情

相关推荐

【雷达信号处理实战】从原理到代码:脉冲多普勒(PD)处理全流程解析与MATLAB仿真

本文深入解析了脉冲多普勒(PD)雷达信号处理的核心原理与全流程。通过剖析多普勒效应、脉冲压缩与慢时间FFT等关键技术,并结合详细的MATLAB仿真代码,手把手指导如何从信号建模、回波模拟到最终生成距离-多普勒谱,实现运动目标的精确测距与测速,直观展示了相参积累带来的显著性能增益。

pca5navigator的博客 950

Spring中的工厂bean

1.普通bean与工厂bean Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean(FactoryBean) 普通 bean:在配置文件中定义 bean 类型就是返回类型 工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样 2.工厂bean的步骤 创建类,让这个类作为工厂 bean,实现接口 FactoryBean 实现接口里面的方法,在实现的方法中定义返回的 bean 类型 ...

MrYushiwen的博客 1023

清理异常值(MAD:绝对中位差)

清理异常数据: 中位数绝对偏差(MAD):用来描述单变量样本在定量数据中可变的一种标准 在统计学中,绝对中位差是刻画一元数据样本变化的一个鲁棒度量。由公式可以看出,其求解还算简单,给定一个数据样本集,首先求其中位数,然后求原始数据减去中位数的绝对值从而形成一个新的数据样本,再求新的数据样本的中位数即为绝对中位差。比如说有一个数据样本集X={2 3 8 7 9 6 4},这时候数据的中位数是6,原...

spider_man 1万+

Spring中BeanFactory和FactoryBean详解

# 【1】FactoryBean 工厂 Bean 跟普通Bean不同, 其返回的对象不是指定类的一个实例, 其返回的是该工厂 Bean 的 getObject 方法所返回的对象。 **实现实例** ```java public class CarFactoryBean implements FactoryBean<Car>{ private String brand; public void setBrand(String brand) { this.brand = brand; } /

小小默:进无止境 1万+

【深度学习|多实例学习】多实例学习(Multiple Instance Learning, MIL)的起源、发展和应用,附代码(一)

【深度学习|多实例学习】多实例学习(Multiple Instance Learning, MIL)的起源、发展和应用,附代码(一)

2401_89898861的博客 1918

“守望先锋”网络同步分析

守望先锋”(Overwatch)是一款由暴雪娱乐开发的团队基础第一人称射击游戏(FPS),于2016年正式发布。游戏以其独特的角色设计、丰富的游戏模式和高度的团队合作性而受到广泛欢迎。类型:第一人称射击(FPS)/多人在线战斗竞技场(MOBA元素)平台玩家人数:每场比赛由两个六人队伍组成,共12名玩家。客户端/服务器模型:在这种模型中,客户端负责处理用户输入和表现逻辑,而服务器则负责游戏的核心逻辑和状态管理。客户端与服务器之间通过网络进行通信,确保游戏状态的一致性。强同步机制。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 424

【spring源码】二、bean定义、工厂

基础概念 1、IoC 和 DI IoC (Inversion of Control),即控制反转。这不是一种新的技术,而是 Spring 的一种设计思想。 在传统的程序设计,我们直接在对象内部通过 new 来创建对象,是程序主动去创建依赖对象;而在 Spring 中有专门的一个容器来创建和管理这些对象,并将对象依赖的其他对象注入到该对象中,这个容器我们一般称为 IoC 容器。 所有的类的创建、销毁都由 Spring 来控制,也就是说控制对象生存周期的不再是引用它的对象,而是 Spring。对于某个具体的对象

努力充实,远方可期 1247

弱网、高热、只有 32MB 内存:恶劣环境下嵌入式 SoC 音视频开发的“不死”法则

永远不要假设。你申请一个 1920 宽的图像,硬件为了对齐(比如 16 字节对齐或 256 字节对齐),实际分配的一行可能有 1936 甚至是 2048 字节。那个多出来的部分叫Padding。如果你写代码时用来计算数据量,或者用Width来做指针偏移:恭喜你,你的画面会像被风吹歪的百叶窗一样,产生斜切畸变。永远使用VB_CONF结构体里返回的u32Stride字段。这是区分新手和老手的试金石。第六章 ISP 调优(Tuning)实战:为什么你调出的画面像个“鬼片”?

大模型大数据攻城狮的专栏 1768

Spring之容中的工厂Bean

这里说的工厂Bean是Spring的一种特殊Bean,这种工厂Bean必须实现FactoryBean接口。FactoryBean接口是工厂Bean的标准接口,把工厂Bean(实现FactoryBean接口的Bean)部署在容器中之后,如果程序通过getBean()方法来获取它时,容器返回的不是FactoryBean实现类的实例,而是返回FactoryBean的产品(即该工厂Bean的getObje

owen_william的博客 792

YOLOv13改进策略【Neck篇】| GSConv 轻量卷积,Slim-Neck 减参数还不掉点

Neck 篇的第二篇继续"替换式"改进,这次的对象是 Neck 里的下采样卷积。GSConv 出自《Slim-neck by GSConv: a better design of lightweight detector》(2022),它的出发点:DWSConv(深度可分离)轻但"信息混不进通道",标准卷积重但表达好——GSConv 用GConv(分组卷积)混通道 + DWConv 补空间 + Channel Shuffle 打散,两全其美。

qq_53329130的博客 30

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型

一、本文介绍 本文记录的是基于 GhostNetV3 的 YOLOv11 轻量化改进方法研究。GhostNetV3的轻量模块采用重参数化方法,训练时为深度可分离卷积和1×1卷积添加线性并行分支,推理时通过逆重参数化移除分支、折叠操作,能够在不增加推理成本的同时提高性能,从而实现YOLOv11的轻量化改进。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进 专栏地址:YOLOv11改进专栏——以发表论文的角度,快速

Limiiiing的博客 1844

Bean工厂探秘:解析Spring底层工厂体系BeanFactory的神奇之道

Spring的底层工厂体系中的BeanFactory是IoC容器的核心,本文将深入研究这一关键组件的实现和原理。我们将详细介绍BeanFactory的作用、职责以及与ApplicationContext的关系。文章还将讨论BeanFactory的常见实现类,如XmlBeanFactory等,以及如何通过XML或注解方式配置和管理Bean。

学而时习之,不亦说乎?温故而知新,可以为师矣! 9555

DeepSeek揭秘:构建高效反洗钱智能监控系统的全流程与代码实例

在金融领域,反洗钱(AML)是一项至关重要的任务。随着金融交易的复杂性和规模不断增长,传统的手工监控方法已无法满足现代金融系统的需求。因此,开发一个智能监控系统来自动识别和报告可疑交易变得尤为重要。本文将详细介绍如何使用DeepSeek技术构建一个高效的反洗钱智能监控系统,并提供相关的代码实例。

理论都是虚的,代码才是王道。 884

Spring Bean工厂与工厂Bean

1.静态Bean工厂:静态方法创建对象 将对象创建过程封装到静态方法中,客户需要时调用该静态方法即可,无需关心创建的细节;    1.1 创建静态工厂方法,用户构造对象实例 abstract class Product { // ..公共属性 } class ProductA extends Product { // ... } class Pr...

影魔的专栏 664

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring中的普通bean和工厂bean

普通bean和工厂bean普通bean工厂bean(FactoryBean) Spring中有两种类型bean,一种是普通bean,另外一种是工厂bean(FactoryBean)。 区别: 不同点 普通bean 在配置文件中定义bean的类型就是返回类型。 工厂bean 在配置文件定义bean类型可以和返回类型不同。 普通bean 在配置文件中定义bean的类型就是返回类型。 Book类: package com.Keafmd.spring5.collectiontype;

『愚』的博客 4103

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

spring学习(spring-bean实例化(实例工厂))

本篇博客的内容:spring容器实例化bean的几种方式。spring容器使用实例工厂方式实例化bean的基本概念与具体操作(属性:factory_method与factory_bean)。最后总结了spring容器的静态工厂实例化bean与实例工厂实例化bean的联系与区别......

岁岁岁平安的博客 1384

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Spring框架|通过工厂创建Bean的三种方式

文章目录工厂模式1.使用静态工厂创建bean2.使用实例工厂创建bean3.实现FactoryBean工厂创建Bean 工厂模式 Spring中bean的创建,默认是框架利用反射new出来的bean实例。有时候也会有一些复杂的情况。 假设有一个飞机,属性如下,现在需要造很多同型号的飞机,那么唯一需要改变的属性只有DriverName(机长姓名),此时可以使用工厂模式帮我们创建对象,有一个专门帮...

匿名攻城狮 3729

04 spring中bean的工厂方法

接下来我们将看一下spring中bean的相关工厂方法。 1、前提约束 完成spring中bean的模板继承与覆盖 https://www.jianshu.com/p/5d7d5aedda12 2、操作步骤 2.1 静态工厂 确保net.wanho.entity.User.java类存在 在src/main/java文件夹下创建net.wanho.factory.Stati...

张力的程序园 263

Spring Bean工厂的接口

1、BeanFactory接口 Spring中的BeanFactory是bean工厂的顶级接口,它定义了bean工厂的基本职能。具有方法如下: 2、AutowireCapableBeanFactory接口 AutowireCapableBeanFactory接口是BeanFactory的子接口,它扩展了BeanFactory的功能,使bean工厂对bean具有自动注入的功能。在这个...

Cloud-Future的博客 701

Spring 的 bean 工厂如何使用

通常在 Spring 的 XML 中配置 bean 的方式有三种。 反射模式 工厂方法模式 FactoryBean 模式 其中反射模式,用的是 bean 的全类名,也就是常用的配置方式,如下方式 <bean id="person" class="com.test.helloworld.Person"> <property name="name" value="小明"></property> <property name="age" value="2

qq_37391214的博客 1424

Spring_1_通过工厂创建Bean

bean的作用域:指定bean是否单实例,默认:单实例的 <bean id="book" class="com.atguigu.bean.Book" scope="prototype"></bean> prototype:多实例的; 1)、容器启动默认不会去创建多实例bean 2)、获取的时候创建这个bean 3)、每次获取都会创建一个新的对象 singleton:单实例的;默认的; 1)、在容器启动完成之前就已经创建好对象,保存在容器中了。 2)、任何获取都是获取之前创建好的那

cai_ing的博客 468

Spring核心Bean工厂装配__Spring学习笔记

在Spring 中最核心的组件是bean工厂,它提供了基本的反向控制和依赖注入的能力。Spring 是一种无侵入性的框架,被bean工厂管理的组件无须知道spring的存在。bean工厂负责打造bean,并注射它们之间的依赖。这些bean会彼此协作。 spring中最基本的BeanFactory接口org.springframework.beans.factory.BeanFactory ,它提供

Shine的专栏 4718

Spring之通过工厂方法创建Bean

简介 静态工厂方法 1.调用静态方法创建Bean是将对象创建的过程封装到静态方法中。当客户端需要对象时,只需要简单的调用静态方法, 而不必关系创建对象的细节 2.要声明通过静态方法创建的Bean,需要在Bean的class属性里指定拥有该工厂方法的类,同时在factory-method属性里 指定工厂方法的名称,最后使用&amp;lt;constrctor-arg&amp;gt;元素为该方法传递方法参数 ...

沙漠皇帝本拉登 338

【Spring】使用工厂方法配置Bean

使用工厂方法配置Bean使用工厂方法配置Bean 静态工厂 实例工厂之前介绍过通过XML配置Bean :Bean的配置,其实通过工厂方法也可以配置Bean。静态工厂工厂就是我们把Bean可以实现放在工厂中,然后需要的时候再去取。静态工厂就是直接调用一个静态方法就可以返回Bean的实例。接下来用一个例子帮助理解,首先定义一个Person类: 然后定义一个静态工厂,在static块中加入我们的Bean

Jackin 的博客 1070

Spring创建实例bean的几种方式(静态工厂,实例工厂...)

用Spring容器创建bean的方式有以下几种: 容器调用需要实例化的类的构造函数,可以带参,也可以不带参数。 通过静态工厂模式。 通过实例工厂模式。 第一种 首先自己创建一个类 package cn.edou.createBean; /** * @author 中森明菜 * @create 2019-04-20 18:58 */ public class FirstCreateBea...

中森明菜的博客 2905

spring学习(spring-bean实例化(静态工厂))

本篇博客的内容:spring容器实例化bean的几种方式。spring容器使用静态工厂方式实例化bean的基本概念与具体操作(属性:factory_method)......

岁岁岁平安的博客 1559
下一篇: 2.3 Spring的核心机制:依赖注入
HamalAlpha
博客等级 码龄11年 5粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值