本文实例为大家分享了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. R语言创建频数表和列联表
  2. spring boot 缓存_Spring Boot 集成 Redis 实现数据缓存
  3. android平板 useragent,移动端适配 user-Agent
  4. 补习系列(18)-springboot H2 迷你数据库
  5. 无法定位程序输入点adddlldirectory 于动态_小程序能力只能“单身”?“乐高”组合玩法了解一下...
  6. CTF-bugku-crypto-[简单加密]-凯撒密码的base64形式
  7. 零和博弈 (社会学概念)
  8. 微软手环2服务器,微软手环2评测 数据狂的最爱
  9. oracle系统优化
  10. python beautifulsoup库下载_python之Beautiful Soup库
  11. 手机使用电脑自带功能进行投屏
  12. 365 水壶问题(递归、数学-裴蜀定理)
  13. 组播IGMP-原理介绍+报文分析+配置示例
  14. Towards 3D Human Pose Estimation in the Wild: a Weakly-supervised Approach论文翻译
  15. 文件夹拷贝,判断,生成当前用户权限的文件夹
  16. python中出现[Errno 2] No such file or directory解决方法之一
  17. Photoshop色彩模式完全手册
  18. python3 requests+bs4爬取某网页MM图片
  19. 从今天起做一个全新的自己
  20. AWS-SS配置过程

热门文章

  1. c++ 合并2个txt_多个表达矩阵文件合并
  2. 西门子rwd60参数设置调试手册_RWD60 RWD68 RWD62控制器调试指导说明
  3. hnu暑期实训之487-3279 字符串处理
  4. 【机器学习-西瓜书】七、贝叶斯分类器
  5. 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)
  6. Python生成requirements.txt方法
  7. 【论文笔记】Factorizable Graph Convolutional Networks
  8. 机器学习从入门到进阶✅
  9. python matplotlib 给图任意加标注
  10. [转]三阶魔方神程序