ITKeyword,专注技术干货聚合推荐

注册 | 登录

模拟spring的注入和读取配置文件(ApplicationContext.xml)

isiqi 分享于

2020腾讯云双十一活动,全年最低!!!(领取3500元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1073

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

推荐:读取Spring的applicationContext.xml配置文件

读取applicationContext.xml方法主要有以下三种: 1) 利用ClassPathXmlApplicationContext,这种方式配置文件应该放在类路径下, 否则Spring将找不到该文件。 A

Spring的配置文件(applicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>

<beans>

<bean id="v" class="tfq.factory.spring.Tain">

</bean>

推荐:模拟Spring的读取xml文件及注入

简单的xml配置文件 <xml version="1.0" encoding="UTF-8"><beans> <bean id="userDAO" class="com.king.dao.impl.UserDAOImpl"></bean> <bean id="

</beans>

//Bean工厂接口

public interface BeanFactory {

Object getBean(String id);

}

注意要导入spring的jar包和jdom的jar包!

import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.xpath.XPath; public class ClassPathXmlApplicationContext implements BeanFactory { /** * Spring容器概念 */ private Map<String,Object> container=new HashMap<String,Object>(); public ClassPathXmlApplicationContext(String fileName) throws JDOMException, IOException, InstantiationException, IllegalAccessException, ClassNotFoundException { //实例化一个读取Xml文件对象实例 SAXBuilder sb = new SAXBuilder(); //获取配置文件对象 Document doc = sb.build(this.getClass().getClassLoader() .getResourceAsStream(fileName)); //获取配置文件中的根节点 Element root = doc.getRootElement(); //获取根节点的子节点 List list = XPath.selectNodes(root, "/beans/bean"); System.out.println(list.size()); //遍历获取的子节点 for (int i = 0; i < list.size(); i++) { //获取配置文件中的第i个bean节点 Element bean = (Element) list.get(i); //获取配置文件中的第i个bean节点的ID String id = bean.getAttributeValue("id"); //获取配置文件中的第i个bean节点class String cla = bean.getAttributeValue("class"); //获取配置文件中的第i个bean节点class转换成Object Object o=Class.forName(cla).newInstance(); container.put(id, o); System.out.println(id + " " + cla); } } @Override public Object getBean(String id) { return container.get(id); } } import tfq.factory.spring.Moveable; public class Car implements Moveable{ @Override public void run(){ System.out.println("Car drive...."); } } import java.io.IOException; import java.util.Properties; import org.jdom.JDOMException; public class TestSpring { public static void main(String[] args) throws ClassNotFoundException, JDOMException, IOException, InstantiationException, IllegalAccessException{ BeanFactory f=(BeanFactory)new ClassPathXmlApplicationContext("tfq/factory/spring/applicationContext.xml"); Object o=f.getBean("v"); Moveable m=(Moveable)o; m.run(); } } 输出: 1 v tfq.factory.spring.Car Car drive

推荐:java spring配置文件applicationcontext.xml的使用

applicationcontext.xml中注册action文件时,忘记注册某个DAO,在action文件中直接使用某个DAO,当代码执行到DAO的使用时,程序会抛出异常。  其本质原因:类的

Spring的配置文件(applicationContext.xml) <xml version="1.0" encoding="UTF-8"> <beans> <bean id="v" class="tfq.factory.spring.Tain"> </bean> </beans> //Bean工厂接口 public interfa

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。