java bean工厂_从零构建轻量级Java Web框架
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框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个性化推荐系统原理介绍(基于内容推荐/协
- 下一篇: JAVA中常用的逻辑运算符_Java中的