文章目录
-
一、Spring简介
- 二、Spring 入口
-
1、 基于XML
* 2、基于注解
Spring是一个分层的JavaEE/SE的一站式轻量级开源框架。
一、Spring简介
Spring的结构如下图所示:
Spring核心概念介绍:
-
Spring容器:就是IoC容器。Ioc容器就是BeanFactory工厂(DefaultListableBeanFactory)。BeanFactory有一个子接口叫ApplicationContext(应用上下文接口)。
-
IoC(核心):Inverse of Control,控制反转。即对象的创建由Spring框架进行。
-
DI:Dependency Injection,依赖注入。在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中。
-
AOP:Aspect Oriented Programming,面向切面编程。在不修改目标对象的源代码情况下,增强IoC容器中Bean的功能。
-
面向切面编程,是一种编程思想,有很多的实现:AspectJ、Spring AOP、Spring 整合了AspectJ。
- AOP的主要作用:横向抽取重复代码,实现代码的重用(事务、日志监控等)。
-
纵向抽取(继承)
1
2 1 * 横向抽取(AOP)
2
二、Spring 入口
所谓的spring入口,指的就是如何启动spring容器。
1、 基于XML
-
Java应用
1
2
3 1ApplicationContext ctx = new ClasspathXmlApplicationContext("spring.xml");
2
3
- web应用
web.xml
1
2
3
4
5
6
7
8
9
10
11 1<context-param>
2 <param-name>contextConfigLocation</param-name>
3 <param-value>classpath:spring.xml</param-value>
4</context-param>
5<listener>
6 <listener-class>
7 ContextLoaderListener
8 </listener-class>
9</listener>
10
11
ContextLoaderListener监听器中,会去调用getWebApplicationContext()—> AbstractApplicationContext()
2、基于注解
-
Java应用
1
2
3 1ApplicationContext ctx = new AnnotationConfigApplicationContext(@Configuration配置类);
2
3
- web应用
web.xml
1
2
3
4
5
6
7
8
9
10
11 1<context-param>
2 <param-name>contextConfigLocation</param-name>
3 <param-value>@Configuration配置类</param-value>
4</context-param>
5<listener>
6 <listener-class>
7 ContextLoaderListener
8 </listener-class>
9</listener>
10
11
ContextLoaderListener监听器中,会去调用getWebApplicationContext()—> AbstractApplicationContext()
getWebApplicationContext得到的默认实现类AnnotationConfigWebApplicationContext