java spring IOC xml方式工厂Bean操作

news2024/11/26 3:42:16

spring中有两种Bean

第一种 普通 Bean 就是我们在配置文件中 定义的类对象 创建bean 并定义相关的id和声明类对象
普通bean的特点在于 在配置文件中定义的类型 也就是返回类型
就比如 你定义的是一个 book类的类型 那你这个bean返回的 也比如是个book类型的对象

第二种 是在工厂类中统一管理的工厂Bean
特点上 还是有比较大区别的 首先 工厂Bean 又叫FactoryBean 他定义的类型和返回类型是可以不一样的
通常作为一个工厂类 来管理bean对象操作

我们创建一个java项目 引入spring中的基本依赖
然后在src下创建两个包 我这里直接叫 spring5 和 collectiontype 你们可以根据自己的喜好起名 跟我的一样 可以避免一些名字问题 毕竟你们的代码大部分可以直接从我这复制

然后 我们在 collectiontype包下创建一个 Course 类 参考代码如下

package collectiontype;

//课程类
public class Course {
    //课程名称
    private String cname;
    public void setCname(String cname) {
        this.cname = cname;
    }
    public String toString() {
        return "cname = "+cname;
    }
}

这是一个管理课程的类 定义 字符串的cname 代表课程名称 然后 定义了他的set方法
改写了类的toString方法 这样直接输出对象 就会输出cname的值

在 spring5目录下创建一个java类 我这里取名为MyBean

package spring5;

import collectiontype.Course;
import org.springframework.beans.factory.FactoryBean;

public class MyBean implements FactoryBean<Course> {
    @Override
    public Course getObject() throws Exception {
        Course course = new Course();
        course.setCname("测试工具");
        return course;
    }

    @Override
    public Class<?> getObjectType() {
        return null;
    }
}

这里 我们实现了 FactoryBean接口 这样就表示他是一个工厂类
然后 定义泛型 指定Course对象类型 这个就代表 我们返回的是一个 Course类的对象

getObject返回的值 就是最后 bean对象返回的值

然后我们在src下创建 bean.xml 配置文件 参考代码如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="mybean" class="spring5.MyBean"></bean>
</beans>

这里 我们就创建了一个bean MyBean对象

然后 在src下创建一个text测试类 参考代码如下


import collectiontype.Course;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class text {
    public static void main(String args[]) {
        //获取配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        Course course = context.getBean("mybean", Course.class);
        System.out.println(course);
    }
}

可以看到 我们创建的是mybean的对象反射对象 但我们接收的类型是Course类的 因为我们MyBean实际返回的是一个Course类的对象

然后通过System.out.println输出了对象的toString方法

运行结果如下
在这里插入图片描述

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

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

相关文章

模拟实现vector/迭代器失效问题

对于STL&#xff0c;我们不仅学会使用STL,还要了解其底层原理&#xff0c;这样一来&#xff0c;我们就能知道什么时候用string好&#xff0c;什么时候用vector&#xff0c;什么时候用list&#xff0c;哪种方法效率高等等。其次了解了STL的底层原理&#xff0c;也助于我们的C功力…

RTF、RIR、Steering Vector傻傻分不清

RTF&#xff1a; Relative transfer function&#xff0c;相对传递函数RIR: Room impulse response&#xff0c;空间冲击响应Steering vector: 导向矢量场景问题定义&#xff1a;空间中存在I个麦克风和J个声源&#xff0c;麦克风采集到的信号其中&#xff0c;麦克i的信号其中表…

一起自学SLAM算法:9.1 ORB-SLAM2算法

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 下面将从原理分析、源码解读和安装与运行这3个方面展开讲解ORB-SLAM2算法。 9.1.1 ORB-SLAM2原理分析 前面已经说过&#xff0c;ORB-SLAM2算法是特征点法的典型代表。因此在下面的分析中&#xff0c;首先介绍一…

被删库勒索了,怎么使用docker进行MySQL容器的管理?

大家觉得写还可以&#xff0c;可以点赞、收藏、关注一下吧&#xff01; 也可以到我的个人博客参观一下&#xff0c;估计近几年都会一直更新&#xff01;和我做个朋友吧&#xff01;https://motongxue.cn 起因&#xff1a;云服务器MySQL密码设置的太简单了&#xff0c;导致到被入…

路由策略实验

1.先配置IP和环回 [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [R1-GigabitEthernet0/0/0]int g 0/0/1 [R1-GigabitEthernet0/0/1]ip add 22.1.1.1 24 [R1-GigabitEthernet0/0/1]q [R1]int l 0 [R1-LoopBack0]ip ad…

ETHDenver 2023 的 Cartesi BUIDLathon 项目创意

希望你在了解Cartesi之前&#xff0c;谨慎对待自己的行为。一旦你开始研究并搜寻可以使用Cartesi Rollups构建的项目或者应用&#xff0c;你就会陷入一个令人兴奋的螺旋洞穴中&#xff0c;你会上瘾。如果你想在2023年中建造一些很具有意义的事情&#xff0c;那你就来对地方了。…

Python01概述 基础语法 判断

Python概述 第二章-Python基础语法 01-字面量 02-注释 03-变量 04-数据类型 05-数据类型转换 06-标识符 07-运算符 08-字符串的三种定义方式 09-字符串的拼接 10-字符串格式化 11-字符串格式化的精度控制 12-字符串格式化的方式-快速写法 13-对表达式进行格式化 14-字符串格…

Java语法核心——面向对象编程

目录 面向过程思想概述 面向对象思想概述 面向对象思想特点及举例 类与对象的关系 类的定义 类与对象的案例(demo02) 对象内存存储机制 成员变量和局部变量的区别 private关键字 面向过程思想概述 我们回想一下&#xff0c;这几天我们完成一个需求的步骤&#xff1a;首…

echarts数据可视化项目搭建(一)

目录直角坐标系通用配置项tooltiptoolboxlegenddataZoom柱状图常见效果折线图常见效果散点图常见效果其他坐标系饼图基本实现常见效果地图地图基本展示不同城市颜色不同地图与散点图结合雷达图仪表盘本博客内容参考黑马课程&#xff0c;详细信息请参考以下网址 Bilibili官方黑…

Apache Superset 开源商业智能大数据可视化

Apache Superset 是一款现代化的开源大数据工具&#xff0c;也是企业级商业智能 Web 应用&#xff0c;用于数据探索分析和数据可视化。 Apache Superset 是一个适合企业日常生产环境中使用的商业智能可视化工具。它具有快速、轻量、直观的特点&#xff0c;任何用户都可以轻松地…

Spring Boot学习之Shiro

文章目录零 全部源码地址一 Shiro简介1.1 Shiro功能1.2 Shiro架构&#xff08;外部视角&#xff09;1.3 Shiro架构&#xff08;内部视角&#xff09;二 Shiro快速入门2.1 演示代码&部分源码解读三 Spring Boot集成Shio3.0 准备操作3.1 整合Shiro3.2 页面拦截实现3.3 登录认…

ESP32设备驱动-HMC5983磁力计驱动

HMC5983磁力计驱动 1、HMC5983介绍 霍尼韦尔 HMC5983 是一款温度补偿型三轴集成电路磁力计。这种表面贴装、多芯片模块专为汽车和个人导航、车辆检测和指向等应用的低场磁场传感而设计。 HMC5983 包括我们最先进的高分辨率 HMC118X 系列磁阻传感器和一个 ASIC,该 ASIC 包含…

AOP切面编程

前言&#xff1a;AOP&#xff08;Aspect Oriented Programming&#xff09;是一种设计思想&#xff0c;是软件设计领域中的面向切面编程&#xff0c;它是面向对象编程的一种补充和完善&#xff0c;它以通过预编译方式和运行期动态代理方式实现在不修改源代码的情况下给程序动态…

各种Sequence Self-Attention变形 (加速矩阵运算 且保证全局特征)

人工设计Self-attention的N*N矩阵1. Local Attention/Truncated Attention2. Stride Attention3. Global Attention人工设计Self Attention的使用与选择1.LongFomer2.Big Bird自动设计Self Attention的N*N矩阵1. Reformer2.Sinkborn Sorting Network不需要N*N大小的矩阵1.Linfo…

【python】图片转字符画 cv2+pygame实现

网上看到一些字符画,非常羡慕,想要用python写一个类似的东西,突然想到字符画不就是把图片分割为像素块再进行替换嘛 恰好之前稍稍入门了python的opencv库,可以对图片进行处理。 处理图片的思想为:对一个区域的像素进行参考值计算,用具有相似参考值的字符进行替代,因此除…

打工人必学的法律知识(七)——《中华人民共和国劳动合同法实施条例》

目录 来源 第一章 总 则 第二章 劳动合同的订立 第三章 劳动合同的解除和终止 第四章 劳务派遣特别规定 第五章 法津责任 第六章 附 则 来源 《中华人民共和国劳动合同法实施条例》 第一章 总 则 第一条 为了贯彻实施《中华人民共和国劳动合同法》&#xff08;以下简称…

mybatis说明

目录 1.说明 2.配置文件 3.映射器 4.select标签 5.insert标签 6.update标签 7.delete标签 8.resultMap的特别说明 9.注解 10.关联(级联)查询 11.动态sql 12.mybatis分页 13缓存 1.说明 MyBatis 是一个开源、轻量级的数据持久化框架&#xff0c;是 JDBC 和 Hiberna…

Redis学习笔记:数据结构和命令

本文是自己的学习笔记。主要参考资料如下&#xff1a; 马士兵 4、Redis的五大数据类型1.1、String1.1.1、String 类型的命令1.1.2、存储对象1.2、List1.2.1、List基本命令1.2.2、List高级命令1.3、Set1.3.1、Set基本命令1.4、HashMap1.4.1、HashMap基本命令1.5、ZSet&#xff0…

【数据结构】7.4 散列表的查找

文章目录7.4.1 散列表的基本概念7.4.2 散列函数的构造散列函数的构造方法7.4.3 处理冲突的方法1. 开地址法1.1 线性探测法1.2 二次探测法2. 链地址法7.4.4 散列表的查找散列表的查找效率分析总结7.4.1 散列表的基本概念 基本思想&#xff1a;根据要存储的关键字的值&#xff0…

计算机网络-杂项

目录 1、蜂窝移动网络 2、TCP和UDP 3、5层架构 4、在浏览器中输入url地址显示主页的过程 5、TCP的基本操作 6、三次握手&#xff0c;四次挥手 6.1、三次握手&#xff1a;双方保证自己和对方都能接收和发送数据。 6.2、三次握手中&#xff0c;为什么客户机最后还要再向服…