当前位置:网站首页>jt-京淘项目

jt-京淘项目

2020-11-09 22:19:36 早起的鸟儿

1.京淘项目架构设计

1.1 互联网行业特点

  1. 高并发
  2. 分布式 服务器数量分配均衡
  3. 海量数据处理 (大数据方向)
  4. 安全性问题: 网贷(11%) 交易的安全性(区块链)

1.2 京淘项目架构设计

image.png

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>
  1. properties说明
1.语法: k-v结构 key=value
2.数据类型: 默认是String数据类型 不要添加多余的""号
3.字符数据类型: properties的默认的加载的编码格式为ISO-8859-1 所以添加中文是需要字符转意.
4.缺点: 所有的key都必须手动的编辑 没有办法复用 所以引入了yml配置
  1. YML 配置文件说明
1.语法 K-V结构 写法上 key:value 实质上 key=value
key:value中间使用 (:+空格) 分隔
key与key之间有父子级关系的. 所以写的时候注意缩进项.
YML配置文件默认的格式都是UTF-8编码 所以可以直接编辑中文
  1. 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;
    }
}

版权声明
本文为[早起的鸟儿]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000037778647