IT@程序员猿媛

【Spring 笔记】基础相关整理

2019-09-14  本文已影响0人  58bc06151329

文前说明

作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。

本文仅供学习交流使用,侵权必删。
不用于商业目的,转载请注明出处。

1. 概述

1.1 IoC 理论

传统程序设计 loC 容器设计

1.1.1 IoC 和 DI

1.1.2 注入形式

构造器注入(Constructor Injection)

public class UserRegister {
    private UserDao userDao = null;//由容器通过构造函数注入的实例对象
    public UserRegister(UserDao userDao){
         this.userDao = userDao;
    }
}

setter 方法注入(Setter Injection)

public class UserRegister {
    private UserDao userDao = null;//该对象实例由容器注入
    public void setUserDao(UserDao userDao) {
       this.userDao = userDao;
    }
}

接口方式注入(Interface Injection)

public interface InjectUserDao {
   public void setUserDao(UserDao userDao);
}

public class UserRegister implements InjectUserDao{
    private UserDao userDao = null;//该对象实例由容器注入
    public void setUserDao(UserDao userDao) {
       this.userDao = userDao;
    }
}

2. 框架结构

Spring 体系架构

2.1 核心容器(Core Container)

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.18.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2.2 数据访问/集成(Data Access/Integration)

2.3 Web

2.4 面向切面编程(AOP)

2.5 设备(Instrumentation)

2.6 消息发送(Messaging)

2.7 测试(Test)

3. 相关组件

3.1 Resource(core)

Resource 体系

3.2 ResourceLoader(core)

ResourceLoader 体系

3.3 BeanFactory(beans)

private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap(256);
BeanFactory 体系
BeanFactory 提供的主要方法名称 说明
getBean() 多个方法用于获取配置给 Spring loc 容器的 bean。
isSingleton() 用于判断是否单例,为真时,容器中单例。
isPrototype() 与单例相反,为真时,每次 getBean,创建新的实例。
getAliases() 获取别名。

3.4 BeanDefinition(beans)

BeanDefinition 体系

3.5 BeanDefinitionReader(beans)

BeanDefinitionReader 体系

3.6 ApplicationContext(context)

ApplicationContext 体系

3.7 小结

上一篇下一篇

猜你喜欢

热点阅读