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操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 全面解析Spring Security 内置 Filter

    全面解析Spring Security 内置 Filter

    这篇文章主要介绍了Spring Security 内置 Filter的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • JVM类加载机制详解

    JVM类加载机制详解

    本文主要介绍了JVM类加载机制的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • SpringBoot使用validation做参数校验的实现步骤

    SpringBoot使用validation做参数校验的实现步骤

    这篇文章主要介绍了SpringBoot使用validation做参数校验的实现步骤,帮助大家更好的理解和学习使用SpringBoot,感兴趣的朋友可以了解下
    2021-05-05
  • java实现的正则工具类

    java实现的正则工具类

    这篇文章主要介绍了java实现的正则工具类,可用于针对电话号码、邮箱、QQ号码、QQ密码、手机号的正则验证功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Spring容器初始化扩展点之ApplicationContextInitializer详解

    Spring容器初始化扩展点之ApplicationContextInitializer详解

    ApplicationContextInitializer是Spring框架提供的一个接口,用于在Spring应用上下文刷新之前对其进行自定义初始化,本文介绍Spring容器初始化扩展点之ApplicationContextInitializer,感兴趣的朋友一起看看吧
    2025-02-02
  • 关于Java中反射的作用义及使用方法

    关于Java中反射的作用义及使用方法

    这篇文章主要介绍了关于Java中反射的作用义及使用方法,反射使得程序可以在运行时对类进行检查和操作,而不需要在编译时知道类的完整信息,需要的朋友可以参考下
    2023-07-07
  • Spring中的@Transactional注解使用详解

    Spring中的@Transactional注解使用详解

    这篇文章主要介绍了Spring中的@Transactional注解使用详解,@Transactional 是一个注解,用于在 Spring 框架中管理事务的声明式事务管理机制,它可以应用于方法或类级别,并指示方法或类在执行时应该被包装在一个事务中,需要的朋友可以参考下
    2024-01-01
  • Java并发编程之显式锁机制详解

    Java并发编程之显式锁机制详解

    这篇文章主要为大家详细介绍了Java并发编程之显式锁机制的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Java复制(拷贝)数组的五种方法汇总

    Java复制(拷贝)数组的五种方法汇总

    java基础在Java中我们经常需要复制一个数组,下面这篇文章主要给大家介绍了关于Java复制(拷贝)数组的五种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • java堆栈类使用实例(java中stack的使用方法)

    java堆栈类使用实例(java中stack的使用方法)

    java中stack的使用方法,堆栈是一种"后进先出"(LIFO) 的数据结构, 只能在一端进行插入(称为"压栈") 或删除 (称为"出栈")数据的操作,下面看示例吧
    2013-12-12

最新评论