没有合适的资源?快使用搜索试试~ 我知道了~
《软件体系结构与架构技术期末复习(SpringBoot)》.pdf
需积分: 0 0 下载量 82 浏览量
2022-12-18
14:23:29
上传
评论
收藏 1.41MB PDF 举报
温馨提示
试读
24页
《软件体系结构与架构技术期末复习(SpringBoot)》.pdf
资源推荐
资源详情
资源评论
软件体系结构与架构技术期末复习(SpringBoot)
一、 软件架构及 Maven
软件架构的常见类型
单体应用架构:所有内容在一台机器上运行。应对早期网站,安全性和稳定性的要求不
高。
垂直应用架构:按功能进行拆分,便于解耦。
分布式架构:将功能服务化,便于服务间的相互调用,提高解耦的程度以及复用性。
SOA 架构:面向服务的架构思想。系统所有功能都定义成了独立的服务,所有的服务通
过服务总线(ESB)或流程管理器来连接。这种松散耦合的结构使得能够以最小的代价整
合已经存在的各种异构系统。
微服务架构:微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可
独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管
理和服务功能交付变得更加简单。
前后端分离架构:后台只负责提供数据,前端只负责数据展示,职责分离,分工明确。
常见的框架技术
Java Web 层框架: Spring MVC、Struts1、Struts2
持久层框架: Hibernate、MyBatis
业务逻辑层:Spring
SpringBoot 是 Spring 家族的一个子项目,其设计初衷是为了简化 Spring 配置,提高开
发效率。
• 软件架构中框架的作用描述正确的是?
A. Spring 框架负责整个项目中各层组件的管理,包括 SpringMVC 和 Mybatis.
B. SpringMVC 则负责控制层管理,实现对用户请求的分发和数据的响应.
C. Mybatis 负责数据持久层的管理,实现业务层与数据层的对接,以及数据层与数据
库间的交互。
D. SpringBoot 出现之前,Spring 是 JavaEE 项目最常用的开发框架。SpringBoot 并不
提供核心特性和扩展功能,只是用于快速、敏捷的开发新一代基于 Spring 框架的应
用。
什么是 Maven
• Maven 是 Apache 公司下的一个纯 Java 开发的开源项目,是用于解决项目开发中依
赖项目类库下载和同步的项目管理工具。
• 使用 Maven 可简化和标准化项目建设过程,帮助开发人员完成项目构建、文档生成、
依赖管理、发布、团队协作等一些任务,使开发人员的工作更轻松。
• Maven 可被用于构建和管理各种项目,例如 C#,Ruby,Scala 等项目。目前项目中
采用 Maven 的比例在持续增长。
• Maven 中提出了基于项目对象模型(POM)的概念,项目的结构和内容在一个 XML 文
件中声明,文件名为 pom.xml。
• Maven 项目中的关键文件包括 pom.xml、src/main/、src/test/和 target/。
Maven 仓库
使用 Maven 最直观的好处就是统一管理 JAR 包,而这些 JAR 包在 Maven 仓库中都是作为
构件存在的。
Maven 使用一个统一服务器存储了这些构件,这些构件都是可共享的,那么这个统一的
服务器就称之为仓库。
Maven 仓库可分为本地仓库、远程仓库和镜像仓库。Maven 项目下载依赖时候会先寻找
Maven 本地仓库是否存在依赖的项目,通常通过项目名、版本号来对应,如果依赖项目
在本地仓库中不存在,则从远程仓库或镜像仓库获取。
• Maven 远程仓库:指 Maven 的公共仓库,又称之为 Maven 中心库,是由 Maven 官方
提供的。
• Maven 本地仓库:默认为路径为系统盘下的“用户文件夹/.m2/repository”,当然实
际应用中是可以修改这个默认地址的。可以将 Maven 的本地仓库理解为“缓存”,其
目的是存放项目所依赖的 JAR 包。
• Maven 镜像仓库:国内目前最好用的仓库源是由阿里公司提供的,如果需要使用阿
里云的源,可以通过配置 Maven 中的 setting.xml 文件来进行设置。
Maven 仓库配置
• settings.xml 中 默 认 配 置 Maven 本 地 仓 库 路 径 为 系 统 盘 下 “ 用 户 名
/.m2/repository”,但实际项目中常使用<localRepository></localRepository>标
签为 Maven 配置一个非系统盘下的文件路径作为本地仓库。
• 使用<mirrors></mirrors>标签对 Maven 的镜像仓库进行配置。
二、Spring 和 SpringBoot
1. 在实际开发中,通常服务器端在采用分层方式进行架构。分别为 Web 层(包括控制层,
使用 SpringMVC 框架)、业务逻辑层(Service,使用 Spring 框架)、持久层(数据访问层,
Dao,使用 Mybatis 框架), Spring 对每一层都提供了技术支持。
2. Spring 的核心是控制反转(IoC: Inverse of Control )和面向切面编程(AOP: Aspect
Oriented Programming )。 在使用 Spring 框架之后,对象的实例不再由调用者来创建,
而是由 Spring 容器来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的
程序代码直接控制。Spring IoC 和 AOP 能让代码很好的分层和解耦,从而提高可维护性
和可扩展性,便于测试。
IoC 的全称是 Inversion of Control,中文名称为控制反转。控制反转就是指在使用
Spring 框架之后,对象的实例不再由调用者来创建,而是由 Spring 容器来创建,
Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这
样,控制权由应用代码转移到了 Spring 容器,控制权发生了反转。
DI 的全称是 Dependency Injection,中文称之为依赖注入。它与控制反转(IoC)的
含义相同,只不过这两个称呼是从两个角度描述的同一个概念。从 Spring 容器的角
度来看,Spring 容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用
者注入了它依赖的实例,这就是 Spring 的依赖注入。
(2)Spring 基于 Annotation 装配 Bean 组件:使用基于 Annotation 的装配时,首先需要
使用@Repository、@Service 与@Controller 分别对实现类进行标注,然后用@Autowired 或
@Resource 注解对注入的 Bean 的属性进行标注。
@Controller 通常作用在控制层,用于将控制层的类标识为 Spring 中的 Bean。
@Service 通常作用在业务层,用于将业务层的类标识为 Spring 中的 Bean。
@Repository 通常作用在数据持久层(或数据访问层,DAO 层),用于将数据持久
层的类标识为 Spring 中的 Bean。
@Autowired 或@Resource 注解对注入的 Bean 的属性进行标注,用于将实例化后对
象注入到 Bean 的属性中,实现依赖注入。
3. Spring 框架的优点如下:
(1)非侵入式设计:Spring 是一种非侵入式(non-invasive)框架,它可以使应用程序
代码对框架的依赖最小化。
(2)方便解耦、简化开发:Spring 就是一个大工厂,可以将所有对象的创建和依赖关
系的维护工作都交给 Spring 容器管理,大大的降低了组件之间的耦合性。
(3)支持 AOP:Spring 提供了对 AOP 的支持,它允许将一些通用任务,如安全、事
务、日志等进行集中式处理,从而提高了程序的复用性。
(4)支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无需手动编
程。
(5)方便程序的测试:Spring 提供了对 Junit4 的支持,可以通过注解方便的测试 Spring
程序。
(6)方便集成各种优秀框架:Spring 不排斥各种优秀的开源框架,其内部提供了对各
种优秀框架(如:Struts、Hibernate、MyBatis、Quartz 等)的直接支持。
(7)降低了 Java EE API 的使用难度:Spring 对 Java EE 开发中非常难用的一些 API
(如:JDBC、JavaMail 等),都提供了封装,使这些 API 应用难度大大降低。
4. Spring 框架包:Spring 开发所需的 jar 包分为两个部分: Spring 框架 4 个核心基础包和
一个第三方依赖包。
spring-core-4.3.6.RELEASE.jar
包含 Spring 框架的核心工具类,Spring 其它组件都要用到这个包里的类。
spring-beans-4.3.6.RELEASE.jar
所有应用都要用到的 JAR 包,它包含访问配置文件、创建和管理 Bean 以及进行控
制反转或者依赖注入操作相关的所有类。
spring-context-4.3.6.RELEASE.jar
提供了在基础 IoC 功能上的扩展服务,还提供了许多企业级服务的支持
spring-expression-4.3.6.RELEASE.jar
定义了 Spring 的表达式语言。
Spring 容器的启动(实例化)
Java 项目中,创建 ApplicationContext 接口实例常用的两种方法:
ClassPathXmlApplicationContext:从类路径 classPath 下的一个或多个 XML
文件中加载上下文定义,即加载 Bean 定义的信息。
FileSystemXmlApplicationContext:从文件系统(绝对路径)中的一个或多个
XMl 文件中加载上下文定义,找到并装载完成 ApplicationContext 的实例化工
作。
Spring Boot
• Spring Boot 是基于 Spring 框架开发的全新框架,其设计目的是简化新 Spring 应
用的初始化搭建和开发过程。
• Spring Boot 整合了许多框架和第三方库配置,几乎可以达到“开箱即用”。
Spring Boot 优点
• 可快速构建独立的 Spring 应用
• 直接嵌入 Tomcat、Jetty 和 Undertow 服务器(无需部署 WAR 文件)
• 提供依赖启动器简化构建配置
• 极大程度的自动化配置 Spring 和第三方库
• 提供生产就绪功能
• 极少的代码生成和 XML 配置
Spring Boot 依赖管理
• spring-boot-starter-parent 是通过<properties>标签对一些常用技术框架的依
赖文件进行了统一版本号管理。
• spring-boot-starter-web 依赖启动器的主要作用是提供 Web 开发场景所需的底层
所有依赖文件,它对 Web 开发场景所需的依赖文件进行了统一管理。
Spring Boot 自动配置
• Spring Boot 应用的启动入口是@SpringBootApplication 注解标注类中的 main()
方法;
• @SpringBootApplication 能够扫描 Spring 组件并自动配置 Spring Boot。
• @SpringBootApplication 注解是一个组合注解,包含@EnableAutoConfiguration、
@ComponentScan、@SpringBootConfiguration 三个核心注解,三个注解分别启用
了自动配置功能、组件扫描功能、以及其他配置
Spring Boot 全局配置文件
application.properties 和 application.yaml。
YAML 文件格式是 Spring Boot 支持的一种 JSON 超集文件格式。
相较于传统的 Properties 配置文件,YAML 文件以数据为核心,是一种更为直观且容易
被电脑识别的数据序列化格式。
application.yaml 文件的工作原理和 application.properties 一样。
剩余23页未读,继续阅读
资源评论
m0_74446974
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功