package com.hfyy.spring.basic; import com.hfyy.spring.mapper.UserMapper; import com.hfyy.spring.service.UserService; import java.util.ResourceBundle; public final class BeanFactory { private static ResourceBundle applicationContext; static{ applicationContext= ResourceBundle.getBundle("applicationContext"); } public static UserMapper getUsemapper(){ UserMapper userMapper1=null; String userMapper = applicationContext.getString("userMapper"); try { Class<?> aClass = Class.forName(userMapper); userMapper1 = (UserMapper)aClass.newInstance(); } catch (Exception e) { e.printStackTrace(); } return userMapper1; } public static UserService getUserServiceImpl(){ UserService userService=null; try { Class<?> aClass = Class.forName(applicationContext.getString("userService")); userService= (UserService)aClass.newInstance(); } catch (Exception e) { e.printStackTrace(); } return userService; } public static <T> T getBean(String key, Class<T> clazz){ T cast=null; try { Class<?> aClass = Class.forName(applicationContext.getString(key)); Object object = aClass.newInstance(); cast = clazz.cast(object); } catch (Exception e) { e.printStackTrace(); } return cast; } public Object getBeanByKey(String key){ Object object=null; try { Class<?> aClass = Class.forName(applicationContext.getString(key)); object = aClass.newInstance(); } catch (Exception e) { e.printStackTrace(); } return object; } }
关于spring框架中的IOC的部分逻辑复现
该代码展示了如何使用Java创建一个静态Bean工厂,通过ResourceBundle读取配置文件获取bean实例,包括UserMapper和UserService。工厂方法实现了根据类名动态实例化对象的功能。
摘要由CSDN通过智能技术生成