1.京淘项目架构设计
1.1 互联网行业特点
- 高并发
- 分布式 服务器数量分配均衡
- 海量数据处理 (大数据方向)
- 安全性问题: 网贷(11%) 交易的安全性(区块链)
1.2 京淘项目架构设计
2.准备工作
2.1 软件:(IDEA、MariaDB【sqlyog】)
2.2 配置文件
1.pom.xml(springboot——Demo1)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--1.parent标签的作用***
作用:
1:解决版本冲突问题
2:是一个聚合工程(pom)
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--2.maven坐标***
maven项目标识:组Id/项目名称/版本号 称为maven坐标
作用:
1: 采用坐标的形式
2: 在本地仓库中 jar包位置就是坐标的位置,maven工作通过坐标查找执行的jar
--> <groupId>com.jt</groupId>
<artifactId>springboot_demo01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_demo01</name>
<description>Demo project for Spring Boot</description>
<!--3.maven项目配置信息***
--> <properties>
<!--指定了jdk版本信息-->
<java.version>1.8</java.version>
<!--
跳过测试类打包
默认条件下程序打包会执行测试了类 如果测试类有问题,则程序打包失败.
--> <skipTests>true</skipTests>
</properties>
<!--4.依赖
手动依赖项 该依赖项被springBoot进行了高度的整合
springBoot帮助大家动态的生成了配置项目,简化了配置的步骤
该配置称之为自动化的配置信息 开箱即用: 只需要导入jar包简单的配置即可实现对应的功能.
--> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!--5.maven 插件的说明
SpringBoot利用maven管理工具进行项目打包/发布/等操作
该标签必须添加 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- properties说明
1.语法: k-v结构 key=value
2.数据类型: 默认是String数据类型 不要添加多余的""号
3.字符数据类型: properties的默认的加载的编码格式为ISO-8859-1 所以添加中文是需要字符转意.
4.缺点: 所有的key都必须手动的编辑 没有办法复用 所以引入了yml配置
- YML 配置文件说明
1.语法 K-V结构 写法上 key:value 实质上 key=value
key:value中间使用 (:+空格) 分隔
key与key之间有父子级关系的. 所以写的时候注意缩进项.
YML配置文件默认的格式都是UTF-8编码 所以可以直接编辑中文
- SpringBoot环境切换问题
# 该配置文件,当spring容器启动时加载.
spring:
profiles:
active: prod
---
# 定义开发环境
spring:
profiles: dev
server:
port: 8080
#配置redis节点信息
redis:
host: 192.168.1.100
port: 6379
# 如果需要多环境配置则需要将YML环境分割
---
spring:
profiles: prod
server:
port: 8090
#配置redis节点信息
redis:
host: 10.0.0.1
port: 6379
5.@Value注解属性赋值
说明:由于YML配置文件一般都是配置第三方的整合的信息,如果将业务的数据添加到YML中则不规范.最好将业务的操作添加到properties文件中.
@RestController //@ResponseBody 将返回值转化为json串使用 程序将不会执行视图解析器 直接返回
//@Controller //String类型/moduleAndView
public class RedisController {
/**
* 实现思路:
* 如果可以从容器中获取数据的化,直接赋值给属性.则可以实现解耦
* 如何实现:
* 注解实现: @Value("${配置文件的key}")
* 表达式: spel 表达式
*/
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private Integer port;
//如果使用RestController 返回值为String类型则返回字符串本身
//如果返回的是一个对象 则结果必然是该对象的JSON数据.
@RequestMapping("/getMsg")
public String getMsg(){
return host + ":" + port;
}
}