Spring IOC xml方式进行工厂Bean操作详解

 更新时间:2023年01月29日 10:59:05   作者:-耿瑞-  
这篇文章主要介绍了Spring IOC xml方式进行工厂Bean操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

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方法

运行结果如下

到此这篇关于Spring IOC xml方式进行工厂Bean操作详解的文章就介绍到这了,更多相关Spring 工厂Bean操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Process#waitFor()阻塞问题的解决

    基于Process#waitFor()阻塞问题的解决

    这篇文章主要介绍了Process#waitFor()阻塞问题的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java 由浅入深带你掌握图的遍历

    Java 由浅入深带你掌握图的遍历

    图的遍历是指,从给定图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶点,使每个顶点仅被访问一次,这个过程称为图的遍历。遍历过程中得到的顶点序列称为图遍历序列
    2022-03-03
  • 详解SpringBoot如何实现整合微信登录

    详解SpringBoot如何实现整合微信登录

    本文主要介绍了SpringBoot实现整合微信登录的过程详解,文中的示例代码介绍的非常详细,对我们的学习过工作有一定的参考价值,需要的朋友可以关注下
    2021-12-12
  • 聊聊注解@Aspect的AOP实现操作

    聊聊注解@Aspect的AOP实现操作

    这篇文章主要介绍了聊聊注解@Aspect的AOP实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Mybatis/Mybatis-Plus驼峰式命名映射的实现

    Mybatis/Mybatis-Plus驼峰式命名映射的实现

    本文主要介绍了Mybatis-Plus驼峰式命名映射的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java黑科技之通过Google Java Style 文件配置IDEA和Ecplise代码风格

    Java黑科技之通过Google Java Style 文件配置IDEA和Ecplise代码风格

    在日常开发中,多人团队协作开发一个项目是很常见的,特别是大公司,这就会涉及到多人在一个工程上开发代码.无规矩不成方圆,一个好的代码风格,更加有利于团队协作,减少代码冲突,提高代码可阅读性,美观性.本文就带着大家仔细研究这个黑科技 ,需要的朋友可以参考下
    2021-05-05
  • Java多线程实例

    Java多线程实例

    本文给大家介绍java多线程实例,对java多线程知识感兴趣的朋友参考下吧
    2015-11-11
  • SpringBoot2.1.4中的错误处理机制

    SpringBoot2.1.4中的错误处理机制

    这篇文章主要介绍了SpringBoot2.1.4中的错误处理机制,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Mybatis中mapper.xml实现热加载介绍

    Mybatis中mapper.xml实现热加载介绍

    大家好,本篇文章主要讲的是Mybatis中mapper.xml实现热加载介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Spring配置文件中parent与abstract的使用

    Spring配置文件中parent与abstract的使用

    这篇文章主要介绍了Spring配置文件中parent与abstract的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论