Spring核心点

2018-12-12  本文已影响0人  哓晓的故事

Spring 带来的好处是:

  1. Class集合和Bean集合解析

Spring提供了懒加载(@Lazy)的方式,使用ClassLoader.loadClass(), 此方式只会加载类,而不会连接(校验,准备,解析,初始化)也就是不会执行静态块,节省初始化的时间。并且解析所有的Class集合,并且生成Bean集合

  1. AOP

Spring在main函数初始化的时候,通过AspectJ进行切面的管理方便织入weave范围和位置,初始化时将每个配置了注解@的方式实现成一个代理串和回调方式,通过cglib或者jdkproxy,生成动态代理对象实例,加入Class/Bean集合

  1. IoC(DI)

Spring在AOP完成后,遍历所有的Bean集合,对每个Bean中标识需要注入的field从Bean集合中获取进行注入

自此,实现了面向切面依赖注入
自此解耦

List<Class<?>> classes = Lists.newArrayList(
                // 先加载 class 再加载 bean
                ClassHelper.class,
                BeanHelper.class,
                // bean 在 aop 之前会被 aop 覆盖, aop 在 ioc 之前, 先生成增强类再注入
                AopHelper.class,
                IocHelper.class,
                ControllerHelper.class
        );
classes.forEach(clazz -> ClassUtil.loadClass(clazz.getName()));
上一篇 下一篇

猜你喜欢

热点阅读