Spring IOC(DI)
IOC-反转控制(DI-依赖注入)
IOC和DI为同一个东西,只是理解角度不同。把对对象的创建交给IOC,并对对象进行DI赋值等一系列操作。
IOC容器存储通过配置文件获得的BeanDefinition(bean定义信息),通过反射生成类对象,在该类对象生成前后预留方法方便后续扩展。可在类生成前后进行赋值、监听、日志记录、AOP等操作。
自动扫描
<context:component-scan base-package="com.ssm"/> (多个包用逗号隔开)
表明com.ssm包及其子包中,如果某个类的头上带有特定的注解
@Component,@Repository,@Service,@Controller,就会将这个对象作为Bean注入进Spring容器。
类比
依赖注入 类比 hibernate的二级缓存。 把东西(hibernate-数据【hashmap】,DI-类)集中放进一个容器(内存)中 ,方便其他(hibernate—QL语句、DI—类)使用。
这样hibernate取数据时先从二级缓存找,减少访问数据库,提高效率。某个类依赖注入后,就不用通过new个对象(保存内存堆中)来使用它,直接通过注解从容器中获取,方便管理(使用)对象。