# 历史演变
# 单一应用架构
当网站流量很小时,只需要一个应用,所有的功能都部署在一起,以减少部署节点和成本,此时,用具简化增删改查工作量的数据访问框架 (ORM) 是关键
# 垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率,此时,用于加速前端页面开发的 Web 框架(MVC)是关键
# 分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,主键形成稳定的服务中心,是前端应用能更快速的相应多变的市场需求,此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键
# 流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键
# 微服务的框架
# dubbo
# Spring-Cloud
一个项目可以由多个小型服务构成(微服务)
# 绑定
@Component// 将此 bean 注入到 spring 容器中
@ConfigurationProperties (prefix = “student”) // 去配置文件里面找 student
还可以在字段里面 @Value (“zs”) 注入属性
ConfigurationProperties Value
@PropertySource (value = {“classpath:conf.properties”})// 可以指定非默认文件里面的值,只能加载 properties,不能加载 yaml
区别: | |
批量注入 单个注入 | |
松散语法 支持 不支持 | |
SPEL 不支持 支持 | |
数据校验 支持 不支持 | |
注入复杂类型 支持 不支持 | |
简单类型(8个基本类型+String+Date) |
# yaml
student:
name: zs
age: 23
sex: true
birthary:2019/10/12
//map 类型
location: {province: 陕西,city: 西安,zone: 莲湖区}
// 数组或集合类型
hobbies: [足球,篮球]
skills: [编程,金融]
// 对象类型
pet: {nickname: wc,strain: hsq}// 写成一行的叫行内写法
nickname: wc
strain: hsq
# note:
//map 里面可以加双引号里面可以实现转义字符,不加的话就是原样输出
中括号可以省,大括号不能省略
yaml 每一个冒号后面必须跟一个空格
数组还可以写成lication: | |
provience: 陕西 | |
city: 西安 | |
zone: 莲湖区 |
# springboot 全局配置文件中的 占位符表达式
1. 随机数 ${random.uuid} 等
2. 引用变量值
student: | |
uname: x | |
name: ${student.user.name} |
引用的实际变量是 properties 中的 student.user.name=zs
# 多环境的切换
1.properties
默认 boot 会读取 application.properties
有开发,测试环境,命名的不同的 properties 文件名,指定 spring.profiles.active=test
# 动态的配置环境
i: 命令行方式:–spring.profiles.activr=test
ii: 通过 vm 指定参数:STS (Eclipse): Run Configuration - Argument - VM -Dspring.profiles.active = 环境名
# 配置文件的位置:项目内部的配置文件
properties 和 yml 中的配置,相互补充,如果有冲突,则优先读取 properties 文件
# 可以存在的位置
file: 项目根目录 /config
file: 项目根目录 /
classpath: 项目根目录 /config
classpath: 项目根目录
如果冲突,则优先级从上往下
如果不冲突,则互补结合使用
# 项目外面的配置文件
# 项目运行参数 --sever.port=8882
# springboot 默认的日志框架是 slf4j 和 logback
# Springboot 整合 JSP 开发
之前的 springboot 默认 自带一个内置的 tomcat, 不需要打 war 包,直接通过 jar 运行
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
provided 的意思是将项目打包时,不需要将内置的 tomcat 一起打包
建立基本的 webapp/WEB-INF/