深入理解spring七大组件

深入理解Spring七大组件

Spring整合MyBatis的过程

  • 使用注解的方法整合
    1. 使用@Datasource注入数据源
    2. 使用@SqLSessionFactoryBean注入核心api
    3. 使用@MapperScan对mybatis注解扫包

Spring中IOC的BeanDifination对象的作用

  • 在IOC容器中存在大量的bean对象,那么BeanDifination这个对象就是对这些组件进行描述描述的内容如下

    // 默认构建方式	
    public static final String SCOPE_DEFAULT = "";
    	// 自动装配
        public static final int AUTOWIRE_NO = 0;
    	// 按照名字装配
        public static final int AUTOWIRE_BY_NAME = 1;
    	//按照类型装配
        public static final int AUTOWIRE_BY_TYPE = 2;
    	// 按照构造方法装配
        public static final int AUTOWIRE_CONSTRUCTOR = 3;
        /** @deprecated */
        @Deprecated
        public static final int AUTOWIRE_AUTODETECT = 4;
        public static final int DEPENDENCY_CHECK_NONE = 0;
        public static final int DEPENDENCY_CHECK_OBJECTS = 1;
        public static final int DEPENDENCY_CHECK_SIMPLE = 2;
        public static final int DEPENDENCY_CHECK_ALL = 3;
        public static final String INFER_METHOD = "(inferred)";
        @Nullable
    	// bean的类型
        private volatile Object beanClass;
        @Nullable
    	// bean的作用域配置singleton还是多例prototype
        private String scope;
    
        private boolean abstractFlag;
    	// 是否懒加载
        private boolean lazyInit;
    	// 装配模式
        private int autowireMode;
    	// 依赖检查
        private int dependencyCheck;
        @Nullable
        private String[] dependsOn;
    	// 可以设置某个bean是否在自动注入的时候是否为作为候选bean
        private boolean autowireCandidate;
    	// 当一个接口有多个实现的时候是否有设置primary来指定某个bean为主选bean
        private boolean primary;
        private final Map<String, AutowireCandidateQualifier> qualifiers;
        @Nullable
        private Supplier<?> instanceSupplier;
        private boolean nonPublicAccessAllowed;
        private boolean lenientConstructorResolution;
        @Nullable	
    	// 工厂类名
        private String factoryBeanName;
        @Nullable
    	// 工厂类方法名
        private String factoryMethodName;
        @Nullable
    	// 构造发明合法的参数值
        private ConstructorArgumentValues constructorArgumentValues;
        @Nullable
        private MutablePropertyValues propertyValues;
        @Nullable
    	// 重载方法名
        private MethodOverrides methodOverrides;
        @Nullable
    	// 初始化方法的名字
        private String initMethodName;
        @Nullable
    	// 终结方法的名字
        private String destroyMethodName;
        private boolean enforceInitMethod;
        private boolean enforceDestroyMethod;
        private boolean synthetic;
        // bean的类别单例多还是抽象
    	private int role;
    
        @Nullable
        private String description;
        @Nullable
        private Resource resource;
    

FactoryBean

1

你可能感兴趣的:(spring)