spring 学习01

关于spring的容器介绍
spring的核心组件;

spring上下文获取userid_SQL


org.springframework.web.context.ContextLoaderListener 其次,在web.xml中会提供有contextLoaderListener。在web容器启动时,会触发容器初始化事件,此时contextLoaderListener会监听到这个事件,其contextInitialized方法会被调用,在这个方法中,spring会初始化一个启动上下文,这个上下文被称为根上下文,即WebApplicationContext,这是一个接口类,确切的说,其实际的实现类是XmlWebApplicationContext。这个就是spring的IoC容器,其对应的Bean定义的配置由web.xml中的context-param标签指定。在这个IoC容器初始化完毕后,spring以【WebApplicationContext.ROOTWEBAPPLICATIONCONTEXTATTRIBUTE】为属性Key,将其存储到ServletContext中,便于获取;

Spring启动过程:
第一步:
首先,对于一个web应用来说:其部署在web容器中,web容器提供一个全局的上下文环境,而这个上下文就是servletContext.为后面的spring ioc提供了宿主环境.
第二步:
在web,xmlZhong ,提供了contextLoaderListener.在web容器启动时,会触发容器方法
此时,contextLoaderListener 监听到这个,而contextInitialized方法会被调用。
sping spring会初始化一个启动上下文,这个上下文被称为根上下文。
就是webapplicationContext,这是接口其实际的实现类XmlWebApplicationContext。这个就是spring的IoC容器

LoaderListener、

综上所述:
采用观察者模式来完成整个application的监听

LoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置了这个监听器,启动容器时,就会默认执行它实现的contextInitialized()方法初始化WebApplicationContext实例,并放入到ServletContext中。由于在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。

BeanFactory的方法

getBean(String name): 根据名称获取Bean
getBean(String name, Class< T> requiredType): 根据类型获取Bean
getBean(String name, Object… args):获取Bean
getBean(Class< T> requiredType, Object… args):获取Bean
isSingleton(String name)::是否为单实例
isPrototype(String name)::是否为原型(多实例)
isTypeMatch(String name, ResolvableType typeToMatch):名称、类型是否匹配
isTypeMatch(String name, Class< ?> typeToMatch)::名称、类型是否匹配
Class< ? > getType(String name) :根据实例的名字 获取类型
String[] getAliases(String name): 根据实例的名字获取实例的别名数组

MyBaits 的核心组件

SqlSessionFactoryBuilder (构造器):它会根据配置信息或者代码来生成 SqlSessionFactory (工厂接口)
SqlSessionFactory:依靠工厂来生成 SqlSession (会话)
SqlSession:是一个既可以发送 SQL 去执行并返回接口,也可以获取 Mapper 的接口。
SQL Mapper:它是 MyBatis 新设计的组件,它是有一个 Java 接口和 XML 文件(或注解)构成的,需要给出对应的 SQL 和映射规则。它负责发送 SQL 去执行,并返回结果
组件的关系:

spring上下文获取userid_spring上下文获取userid_02

configuration

这里我们的 Configuration 的类全限定名为 org.apache.ibatis.session.Configuration

mybatis的组件模型:

spring上下文获取userid_spring_03