本文实例为大家分享了BeanFactory实现创建对象的具体代码,供大家参考,具体内容如下

说明:

其作用是减少层与层之间的依赖。

实现步骤:

编写2个类(Student,Teacher)再编写beans.properties文件,接着编写BeanFactory类,最后编写测试类BeanTest。

参考代码如下:

/**

*beans.properties文件的内容(位于与src平级的config资源包下)

*/

Student=com.xxx.generic.demo.Student

Teacher=com.xxx.generic.demo.Teacher

/**

*BeanFactory类的参考代码

*/

import java.io.InputStream;

import java.util.Enumeration;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

import java.util.Set;

public class BeanFactory {

private BeanFactory() {

}

private static Map beans = new HashMap<>();

static {

InputStream is = BeanFactory.class.getClassLoader().getResourceAsStream("beans.properties");

Properties prop = new Properties();

try {

prop.load(is);

Enumeration keys = (Enumeration) prop.propertyNames();

while (keys.hasMoreElements()) {

String key = keys.nextElement();

String value = prop.getProperty(key);

beans.put(key, value);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (is != null) {

try {

is.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

public static T getBean(Class clazz) {

T t = null;

String className = clazz.getSimpleName();

Set keys = beans.keySet();

for (String key : keys) {

if (key.equals(className)) {

String value = beans.get(key);

try {

t = (T) Class.forName(value).newInstance();

} catch (Exception e) {

e.printStackTrace();

}

break;

}

}

return t;

}

}

/**

*BeanTest类参考代码

*/

public class BeanTest {

public static void main(String[] args) {

Student s = BeanFactory.getBean(Student.class);

System.out.println(s + ":我是" + s.getClass().getSimpleName() + "的一个对象。");

Teacher t = BeanFactory.getBean(Teacher.class);

System.out.println(t + ":我是" + t.getClass().getSimpleName() + "的一个对象。");

}

}

运行结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

怎么样生成bean对象java_使用BeanFactory实现创建对象相关推荐

  1. Spring源码分析-如何获取Bean对象

    导语   在上篇博客中 介绍了关于BeanFactory和FactoryBean相关的操作,并且查看了在两个操作中他们具体的代码有那些,这篇博客主要就是顺着上篇博客思路继续来分析Bean对象的获取.下 ...

  2. 【spring源码】基于factoryMethod创建bean对象

    案例: 1.定义Student类: @Data public class Student {private String name;private Integer age;public Student ...

  3. Spring学习笔记(一):bean对象的配置Ioc

    文章目录 把对象创建交给spring管理 一.创建bean的三种方式 二.bean对象的作用范围 三.bean对象的生命周期 spring中的依赖注入 一.构造函数注入(除非必须,一般不用) 二.se ...

  4. spring bean对象的生成及数据注入的时机 -》getBean

    大家都知道在spring中bean对象的生成分两类一类是预加载,也就是说在容器初始化的时候把bean注入生成的事情一起干了.另一类是需要开发者主动调用getBean来获取bean对象. 1.预加载函数 ...

  5. 四:BeanFactory来获取bean对象

    通过BeanFactory来获取bean对象,bean的生命周期是否和Applicationcontext 是一样吗? 不是一样的,bean是工厂中创建的生命周期会简单一些: 转载于:https:// ...

  6. IoC-spring 的灵魂(带你轻松理解IOC思想及bean对象的生成过程)

    在理解任何技术之前,我都会问自己一个问题:它的产生是为了解决什么样的问题,以及如何解决这些问题?希望你能在本篇文章中找到答案-- (由于大家对Ioc应该是经常使用了,所以这里不会告诉你应该怎么样使用, ...

  7. Spring里的容器和Bean对象

    "控制反转"是指new实例工作不由程序员来做而是交给Spring容器来做.在Spring中BeanFactory是IOC容器的实际代表者. Spring 容器是 Spring 框架 ...

  8. 奇怪的问题,再次启动jar包会导致bean对象失效?Unknown redis exception Cannot connect, Event executor group is terminated

    大家好,我是烤鸭: 踩坑实录.一个某次上线导致的问题,并没有改过什么代码,只是重新上了一次包,没上之前从来没出过这个问题.最开始日志的报错信息一直是 NoClassDefFoundError coul ...

  9. Bean、BeanDefinition、BeanFactory、FactoryBean

    Bean 1.bean的定义格式: <bean id="" class=""></bean> 2.Bean对象在Spring实现中是以B ...

最新文章

  1. google浏览器插件安装时出错,Package is invalid: CRX HEADER INVALID
  2. 直播协议的选择:RTMP vs. HLS
  3. 5.7 matlab数据插值与曲线拟合的比较
  4. Win7系统下装Linux操作系统详细流程(图文)
  5. 关于字符串指针不可修改的问题
  6. Golang之new和make
  7. PHP调用外部服务获取IP地域信息实现信息的地域性关联
  8. SpringMVC Spring Mybatis Druid SpringSession集成例子
  9. the pdf expert for android v2.6.0,PDF Expert
  10. htaccess 伪静态的规则
  11. Dennis Ritchie, father of Unix and C, dies
  12. ctr预估之特征工程
  13. 【Hoxton.SR1版本】Spring Cloud Ribbon负载均衡服务调用
  14. STM32F103实现LED呼吸灯程序
  15. Eclipse 的中文简体版安装教程
  16. 木讷的程序员需要知道的事情 (三)
  17. Tableau 网站流量分析案例汇总
  18. Java相互关注_java --关注/取消关注
  19. PWM的基本原理及其应用实例
  20. Excel:IF条件类函数

热门文章

  1. php酒店管理论文,酒店管理毕业论文
  2. python消息队列celery_python—Celery异步分布式
  3. 修改手机屏幕刷新率_240Hz 超高刷新率,这手机屏幕比电竞专业屏还牛
  4. python网络安全协议_python网络安全
  5. 力扣每日一题 2021.10.23
  6. 计算机网络 第五章 运输层
  7. 洛谷P1015回文数
  8. PaddleDetection的学习笔记
  9. 使用github+hexo搭建静态博客
  10. java实现一个简单的登录界面