@spring核心IOC
spring 所做的简化策略
基於pojo的轻量级和最小侵入性编程
通过依赖注入和面向接口实现松耦合
基于切面和惯例进行声明式编程
通过切面和模板减少样板式代码
IOC原理
1、当web容器启动的时候,Spring的全局bean的管理器会去xml配置文件中扫描的包下面获取到所有的类;
2、根据你使用的注解,进行对应的封装,封装到全局的bean容器中进行管理,一旦容器初始化完毕,beanID以及bean实例化的类对象信息就全部存在了;
3、现在我们需要在某个service里面调用另一个bean的某个方法的时候,我们只需要依赖注入进来另一个bean的Id即可;
4、调用的时候,spring会去初始化完成的bean容器中获取即可,如果存在就把依赖的bean的类的实例化对象返回给你,你就可以调用依赖的bean的相关方法或属性等。
手写ioc的步骤
有了以上知识点,现在我们就可以来手动写我们自己的Spring IOC了,在开始手写之前,先想一想,我们需要有哪些工作需要做?
1、 需要去构造一个Spring容器:ClassPathXmlApplicationContext;
2、 需要注解定义两个注解:@Service、@Resource;
3、 使用反射的手段读取指定目录下的class信息,解析Class信息;
4、 对Class信息的注解做处理;
5、 以键值对的方式创建beanID,bean对象,并且放到容器中;
6、 使用的时候通过beanID获取Bean对象。