文章目录
技术体系结构
单体架构
- 表述层(控制层) SpringMVC(针对Tomcat ___Servlet)
- 业务逻辑层 Spring【不止针对业务层,但着重于业务逻辑层】(针对JavaSE)
- 持久化层(数据库) Mybatis(对JDBC的封装)
分布式架构
一个项目project拆分成多个模块module。
SpringBoot是SSM的一种简化,快速创建服务。
SpringCloud用来维护不同服务的相互调用。
框架 Framework
从文件结构的角度看,框架=jar包+配置文件
SpringIoc容器和核心概念
组件
组件就是可以复用的Java对象。
eg.
控制层组件 Servlet
业务逻辑层 Service
持久化层组件 Dao
Spring管理组件优点
- 降低耦合性
- 提高代码的可重用性
- 方便配置和管理
- 交给Spring管理的对象(组件),可以享受Spring其他功能
Spring Ioc 容器和容器实现
普通容器
数组集合等
复杂容器
例如Servlet容器,Spring Ioc容器自然也是复杂容器
SpringIoc容器具体接口和实现类
- BeanFactory 是最基本的。规定了ioc容器的基本动作。
- ApplicationContext 是BeanFactory的子接口。做了一些拓展动作。 aop/web
- ClassPathXmlApplicationContext
- 配置文件是xml格式
- 项目的类路径下 resources
- FileSystemXmlApplicationContext
- 配置文件时xml格式
- 文件存储到项目外
- WebApplicationContext
web项目对应 - AnnotationConfigApplicationContext
配置文件使用Java类。
- ClassPathXmlApplicationContext
SpringIoc 容器管理配置方式
配置方式包括三种:xml、注解、配置类
SpringIoc Ioc DI
Ioc 控制反转
DI 依赖注入
Spring Ioc 实践和应用
Spring Ioc创建步骤
- 编写配置信息(组件类信息,组件之间的引用关系)
- 实例化ioc容器
- 如何在Java代码中获取组件
配置信息
实例化
- 构造函数实例化——new
- 无参数构造函数
- 有参数构造函数
- 工厂模式实例化——方法
- 静态工厂
- 非静态工厂
DI 依赖注入
单个构造函数参数
<bean id="userDao" class="com.atguigu.ioc_02.UserDao" />
<bean id="userService" class="com.atguigu.ioc_09.UserService">
<constructor-arg ref="userDao"/>
</bean>