)
目录1.Spring是什么2.Spring为什么是容器3.什么是IoC思想4.DI什么是DI5.IoC与DI传统模式IoC与DI结合传统模式与IoC模式的对比6.IoC和DI的代码实现ComponentAutowired结果7.Bean的存储1. 注解可以把某个对象 交给IoC容器管理1.类注解Controller怎么确定对象已经被Spring IoC管理常见getBean的三种方式这三种方式获取bean的区别bean的name的命名规则ServiceRepositoryComponentConfiguration.2.既然这5个类注解都表示 把类交给Spring管理那为什么需要这么多类注解3.补充4.方法注解1.Spring是什么Spring是一个开源框架简化Java开发。Spring也是包含了众多工具方法的IoC 容器。什么是IoC什么是容器2.Spring为什么是容器烧杯里装水教室装人Spring里装“对象”3.什么是IoC思想Inversion Of Control——控制反转也就是Spring是一个装很多工具的 控制反转的 容器。也就是“对象”的控制权 发生了 反转。比如new 了一个对象调用getList方法就使用了这个对象。我们认为 getList控制这个对象但实际上是Spring来控制对象4.DI什么是DIDIDependency Inject依赖注入容器IoC在运行期间动态的为应用程序提供运行时 所依赖的资源5.IoC与DI引入IoC容器利用依赖关系注入的方式实现对象之间的解耦。造一辆车传统模式这样每个对象之间的耦合性非常高。如果要新增一个属性那么每个代码都需要改IoC与DI结合为避免出现以上情况我们采用依赖注入的方式传统模式与IoC模式的对比传统代码是Car控制并创建了FrameworkFramework创建并创建了Bottom依次往下。依赖对象的控制权在当前类中。对象的创建顺序是Car-Freamwork-Bottom-TireIoC模式的对象的控制权不再由当前类控制实现对象与对象之间的解耦对象的创建顺序是Tire-Bottom-Freamwork-Car6.IoC和DI的代码实现把BookDaoBookService交给Spring管理完成Controller、Service、Dao层的解耦Component把类交给Spring管理Autowired注入运行时依赖的对象注意一定要记得依赖注入!!!结果7.Bean的存储Bean就是Spring IoC容器 管理的 Java对象。所以说IoC也就是bean的存储IoC里存放一堆Bean实例。1. 注解可以把某个对象 交给IoC容器管理1.类注解Controller怎么把UserController这个对象交给Spring管理使用Controller注解怎么确定对象已经被Spring IoC管理ApplicationContext应用上下文Spring的整个环境也包括了对象所以可以从这里查看常见getBean的三种方式1.根据类的类型获取bean可以获取到这类的对象说明注解添加成功了如果把注解注释掉就会报错2.根据bean的name拿bean3.根据bean的name和类的类型获取bean这三种方式获取bean的区别根据类的类型要求Spring里某个类型的bean只有一个bean的name的命名规则类名首字母小写其余不变在JDK的Introspector类的decapitalize方法中ServiceRepositoryComponentConfiguration.统一如下2.既然这5个类注解都表示 把类交给Spring管理那为什么需要这么多类注解这几个注解之间的关系Controller注解的声明Service注解的声明Repository注解的声明Component注解的声明Configuration注解的声明这表明其余四个是Component的衍生注解。所以Component与其他的有差别3.补充1.RestController是IoC的一个实现。RestControllerResponseBodyController2.三层架构表现层——Controller业务逻辑层——Service数据持久层——Repository4.方法注解Bean后续见