Bean工厂

回顾下前面的知识,通过加载配置文件获取应用基础包名,加载基础包名下所有的类,获取Controller,Service类。到目前为止,我们只是加载了类,但是无法通过获取的类来实例化对象。因此需要一个反射工具,来实例化类。

创建一个Bena工厂,来生产(实例化Bean类对象)Bean。newInstance()方法,实例化目标类;invokeMethod()通过反射机制来调用类中的方法;setField()通过反射机制为类成员遍历赋值。

//Bean工厂

public class BeanFactory {

/**

* 创建实例

*

* @param clazz

* @return

*/

public static Object newInstance(Class> clazz) {

Object instance;

try {

instance = clazz.newInstance();

} catch (Exception e) {

throw new RuntimeException(e);

}

return instance;

}

/**

* 方法调用

*

* @param obj

* @param method

* @param args

* @return

*/

public static Object invokeMethod(Object obj, Method method, Object... args) {

Object result;

try {

method.setAccessible(true);

result = method.invoke(obj, args);

} catch (Exception e) {

throw new RuntimeException(e);

}

return result;

}

/**

* 设置成员变量值

*

* @param obj

* @param field

* @param value

*/

public static void setField(Object obj, Field field, Object value) {

try {

field.setAccessible(true);

field.set(obj, value);

} catch (Exception e) {

throw new RuntimeException(e);

}

}

}

java bean工厂_从零构建轻量级Java Web框架相关推荐

  1. java bean工厂_工厂bean和bean工厂

    FactoryBean(工厂bean):是bean的加工工厂,是对已知Bean的加工,是一个接口,要实现三个方法: ① Object getObject()可以对bean进行加工添加功能. ② Cla ...

  2. java web 模型,从零构建轻量级Java Web框架

    模型数据与视图 在处理请求时,通常会返回视图JSP页面和数据.所以现在需要将视图JSP路径和数据封装在一起返回.如果只返回数据,则返回JSON格式数据. 返回视图JSP,视图中包含视图JSP路径和视图 ...

  3. 《从零构建前后分离web项目》:开篇 - 纵观WEB历史演变

    开篇 : 纵观WEB历史演变 在校学习和几年工作工作中不知不觉经历了一半的 WEB 历史演变.对近几年的发展比较了解,结合经验聊聊 WEB 发展历史. 演变不易,但也是必然,因为为人始终要进步. WE ...

  4. 【JAVA学习】1、零基础入门Java 基础语法:概念、规则、格式

    [JAVA学习]1.零基础入门Java 基础语法 前言 JAVA开发环境选择 Java 基础概念 Java 标识符 Java修饰符 基础代码模板框架 命名规则 基础规则 后端开发规则 代码格式 前言 ...

  5. 从零构建神经网络-不使用框架(纯纯手撕)

    一.从零构建神经网络-不使用框架(纯手撕) 神经网络从0开始 动手从零开始实现一个神经网络,不使用框架,一步一步推理应该可以加深一下对神经网络的理解. 网络结构为三层全连接网络,节点个数依次为784. ...

  6. 使用Python开发轻量级的Web框架以及基于WSGI的服务器来实现一个网站页面

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目说明 二丶数据准备 三丶使用网络TCP开发一个基于WSGI协议的Web服务器 四丶使用python3开发一个轻量级的 ...

  7. javame学习_从零基础自学Java教程:648集全网最新Java学习教程,一学就会

    我们都知道Java的功能非常的强大,Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即J ...

  8. 零基础学java web开发_从零基础学Java成为一个专业的java web 开发者

    原标题:从零基础学Java成为一个专业的java web 开发者 "我怎么才能成为一个Java Web开发者?"对于这个问题,答案其实并不简单.成为一个Java Web开发人员包括 ...

  9. java基础不好框架能学会吗_转行Java能学会吗?零基础学习Java的学习路线

    Java的跨平台性.通用性.安全性.高效性决定了这门语言在未来10年都会是最热门的语言之一.Java技术的安全性和平台移植性足够让他应用到不同的领域,它的工作需求足够大,现实一点来说即使Java濒临o ...

最新文章

  1. mysql longtext可以存储多少文字_MySQL 四万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)
  2. 【怎样写代码】确保对象的唯一性 -- 单例模式(二):解决方案
  3. html5media 网页播放视频,html5media 在IE8播放视频黑屏
  4. 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
  5. 深度学习入门:Day-11_CNN
  6. 俄罗斯方块C++代码(转载他人代码)
  7. hadoop组件官方源和国内源
  8. JavaWeb中的四大作用域
  9. 使用Python调整图片尺寸(大小)
  10. 使用树莓派与微信公众平台对接(python)
  11. 草料生成app自动下载的二维码
  12. 中考计算机易错知识点,【中考备考】易错知识点归类
  13. 无法安装 cloudera-manager-agent
  14. 补题系列 1 最小布线
  15. 证券投资的运作与市场主体
  16. PCL:交互点选点云
  17. 梯度下降法实战案例(波士顿房价)
  18. 【BDTC 2016】大数据云服务论坛:云上的大数据探索
  19. 基于JavaSwing开发画图软件 课程设计 小作业 大作业源码
  20. JS红宝书·读书笔记

热门文章

  1. boot.oat FC问题分析报告
  2. javascript真的是异步的吗?且看setTimeout的实现原理以及setTimeout(0)的使用场景
  3. 龙图 VP 李翀:数据化运营及云计算下的运维
  4. jenkins学习笔记2-在centos中安装jenkins master测试环境
  5. 11个实用的CSS学习工具
  6. 海量数据处理分析(部分)
  7. 完整国内城市js级联选择
  8. 第十章 Internet
  9. IP/TCP/UDP/RTP/RTCP 包结构图
  10. linux实现shell,linux