Spring框架解析(spring笔记,持续更新)

Spring框架解析

1、写一个spring的demo

测试类

public class TestMain {

	public static void main(String[] args) throws Exception {
		
		  //1.声明注册bean
		  BeanDefined beanObj = new BeanDefined();
		  beanObj.setBeanId("teacher");
		  beanObj.setClassPath("com.kaikeba.beans.Teacher");
		  
		  List beanList = new ArrayList();
		  beanList.add(beanObj);//spring核心配置
		  
		  //2.声明一个Spring提供BeanFacotory
		  BeanFactory factory = new BeanFactory();
		  factory.setBeanDefinedList(beanList);
		  
		  //3.开发人员向BeanFactory索要实例对象.
		  Teacher t= (Teacher) factory.getBean("teacher");	
		  System.out.println(t);         //com.kaikeba.beans.Teacher@6adwjiwdj
		}
}

BeanFactory类,用于解析传入的beanId和创建实例对象

public class BeanFactory {
	
	   private List<BeanDefined> beanDefinedList;

	public List<BeanDefined> getBeanDefinedList() {
		return beanDefinedList;
	}

	public void setBeanDefinedList(List<BeanDefined> beanDefinedList) {
		this.beanDefinedList = beanDefinedList;
	}
	
	public Object getBean(String beanId) throws Exception{
		   Object instance;
		   for(BeanDefined beanObj:beanDefinedList){
			     if(beanId.equals(beanObj.getBeanId())){
			    	 String classPath = beanObj.getClassPath();			    	 
					 Class classFile= Class.forName(classPath);
					 //在默认情况下,Spring工厂是通过调用当前类默认工作方法创建实例对象
					 instance= classFile.newInstance();
					 return instance;
			     }
		   }
		   return null;
	}
	   

}

通过这个例子,告诉了我们Spring的核心就是一个工厂类,在配置文件写的这些标签。 实际上只是作者自己定义的规则,规则里面告诉我们如何把java类信息交给当前spring。spring在运行过程中,在默认的场景下就是使用反射工厂来进行创建的

上一篇:BATJ互联网公司必问知识点:Spring十个面试专题及答案


下一篇:Spring整合MyBatis要点