IOC的核心

IOC思想:实现对象的控制反转(由框架控制对象)将对象的控制权移交给框架。
对于初学者来讲,对资源的控制很难达到非常高的标准,由高级的设计人员完成这件事情就可以了。
IOC核心(思想的实现)-最核心的部件:
工厂:构建对象
容器:存储对象
注入:实现对象依赖关系的设置
IOC技术的实现(套路或模式):
1.反射(动态操作数据)+XML(描述数据)
2.反射(动态操作数据)+注解(描述数据)

Spring中的工厂
我们用ClassPathXmlApplicationContext或者用annotation注解的方式AnnotationConfigApplicationContext初始化xml,这些类都实现了ApplicationContext接口,ApplicationContext又继承了ListableBeanFactory,ListableBeanFactory又继承了BeanFactory接口,BeanFactory的理念是创建Bean对象的工厂,Context的上文是工厂,下文是容器,工厂创建对象,创建的对象放在容器,容器是map

public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,
        MessageSource, ApplicationEventPublisher, ResourcePatternResolver {}
public interface ListableBeanFactory extends BeanFactory {}
package org.springframework.beans.factory;

import org.springframework.beans.BeansException;
import org.springframework.core.ResolvableType;
public interface BeanFactory {
    String FACTORY_BEAN_PREFIX = "&";
    Object getBean(String name) throws BeansException;
    <T> T getBean(String name, Class<T> requiredType) throws BeansException;
    <T> T getBean(Class<T> requiredType) throws BeansException;
    Object getBean(String name, Object... args) throws BeansException;
    <T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
    boolean containsBean(String name);

    boolean isSingleton(String name) throws NoSuchBeanDefinitionException;

    boolean isPrototype(String name) throws NoSuchBeanDefinitionException;

    boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;

    boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException;

    Class<?> getType(String name) throws NoSuchBeanDefinitionException;

    String[] getAliases(String name);
}

现阶段的程序员是消费者
生产者是IOC,创建对象,通过容器注入给消费者
谁用注入给谁

IOC基础:一个对象如何由Spring容器去创建,一个对象如何由spring容器去控制它的作用域,去控制它的生命周期,去实现对象的延时加载
IOC进阶:如何使用Spring的IOC为对象的属性注入值:基本类型(直接量)值的注入,集合类型值的注入,对象类型值的注入
IOC高级:注解方式实现IOC的思想
springIOC整合druid:因为druid在高并发情况下应用的非常完美
springIOC整合MyBatis,基于xml方式的整合和基于注解方式的整合

<bean class=" ">

@Controller
Class SysLogController{}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容