首页 >  资讯 >  详情

【播资讯】javaspringIOCxml方式工厂Bean操作

2023-02-01 23:56:14来源:CSDN

spring中有两种Bean

第一种普通Bean就是我们在配置文件中定义的类对象创建bean并定义相关的id和声明类对象

普通bean的特点在于在配置文件中定义的类型也就是返回类型


(资料图)

就比如你定义的是一个book类的类型那你这个bean返回的也比如是个book类型的对象

第二种是在工厂类中统一管理的工厂Bean

特点上还是有比较大区别的首先工厂Bean又叫FactoryBean他定义的类型和返回类型是可以不一样的

通常作为一个工厂类来管理bean对象操作

我们创建一个java项目引入spring中的基本依赖

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

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

packagecollectiontype;//课程类publicclassCourse{//课程名称privateStringcname;publicvoidsetCname(Stringcname){this.cname=cname;}publicStringtoString{return"cname="+cname;}}

这是一个管理课程的类定义字符串的cname代表课程名称然后定义了他的set方法

改写了类的toString方法这样直接输出对象就会输出cname的值

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

packagespring5;importcollectiontype.Course;importorg.springframework.beans.factory.FactoryBean;publicclassMyBeanimplementsFactoryBean{@OverridepublicCoursegetObjectthrowsException{Coursecourse=newCourse;course.setCname("测试工具");returncourse;}@OverridepublicClass>getObjectType{returnnull;}}

这里我们实现了FactoryBean接口这样就表示他是一个工厂类

然后定义泛型指定Course对象类型这个就代表我们返回的是一个Course类的对象

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

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

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

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

importcollectiontype.Course;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclasstext{publicstaticvoidmain(Stringargs[]){//获取配置文件ApplicationContextcontext=newClassPathXmlApplicationContext("bean.xml");Coursecourse=context.getBean("mybean",Course.class);System.out.println(course);}}

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

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

运行结果如下

关键词:

[ 相关文章 ]