1、项目概述
该项目是基于股票实时交易的数据分析产品,为用户和机构提供个性化的股票数据分析和展示服务
核心功能:数据分析和展示为主,功能涵盖了A股大盘实时指数展示、涨幅榜、个股涨跌、个股秒级行情、实时日K线行情等
2、股票相关名词
股票:股份证书的简称;
股票分类:A股-人民币普通股票
B股-人民币特种股票
个股指标参数:开盘价、收盘价、当前价、涨跌值、涨跌幅度(涨幅)、涨停与跌停、振幅、成交量、成交金额、股票编码。
个股K线图:日k线图、周k线图、月K图
大盘指数:整体反应了股市的行情信息
板块指数:更加细粒度的反应具体某个行业股市的活跃程度
3、项目架构
技术选型,如下图:
- 前端
基本骨架:vue-cli+vue+element+axios
报表:echartsjs
前端支持:node webpack
- 后端
基础框架:SpringBoot、Mybatis、SpringMVC
安全框架:SpringSecurity+Jwt+Token
缓存:Redis+SpringCache
excel表格导出:EasyExcel
小组件:Jode-Time 、hutool 、Guava 、HttpClient | RestTemplate 、线程池
定时任务:Xxljob
分库分表:Sharding-JDBC
前端资源部署:Nginx+Linux
核心业务详情:
-
股票采集系统
-
核心功能是周期性采集股票数据,并刷入数据库;
-
借助xxljob提供完善的任务监控机制;
-
-
国内指数服务
-
主要统计国内大盘实时数据信息;
-
-
板块分析服务
-
主要统计国内各大行业板块行情数据信息;
-
-
涨幅榜展示功能
-
根据个股涨幅排序,提供热点股票数据展示;
-
-
涨停跌停数展示功能
-
统计股票涨停跌停的数量;
-
-
成交量对比展示功能
-
综合对比真个股市成交量的变化趋势;
-
-
个股详情展示功能
-
包含分时行情、日k线、周K线图、个股描述服务等
-
-
报表导出服务
-
根据涨幅排序导出热点股票数据信息;
-
-
其它
-
用户信息管理;
-
角色管理;
-
权限管理等
-
4、开发流程
5、数据库环境搭建
在MobaXterm中使用docker搭建数据库容器具体代码如下:
docker run
--restart=always
-p 3306:3306
--name mysql
-v /tmp/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root
-e TZ=Asia/Shanghai
-d mysql:5.7.25
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--default-time_zone='+8:00'
创建stock-db数据库,并设置编码为utf8mb4,然后导入stock.sql。
6、后端工程搭建
基于maven创建stock_parent父工程
在settings的file encoding中将编码改为utf-8
在pom文件中引入依赖
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itheima.stock</groupId>
<artifactId>stock_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>stock_common</module>
<module>stock_backend</module>
<module>stock_job</module>
</modules>
<packaging>pom</packaging>
<description>
该工程为股票项目的父工程,作用:
1.聚合若干子工程,统一管理子工程的生命周期
2.统一管理资源依赖的版本(版本锁定)
3.统一管理插件的版本依赖
4.统一导入公共的依赖资源等
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.surefire.version>2.12.4</maven.surefire.version>
<mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version>
<pagehelper-spring-boot-starter.version>1.2.12</pagehelper-spring-boot-starter.version>
<mysql-driver.version>5.1.49</mysql-driver.version>
<fastjson.version>1.2.71</fastjson.version>
<springfox-swagger2.version>2.9.2</springfox-swagger2.version>
<druid-spring-boot-starter.version>1.1.22</druid-spring-boot-starter.version>
<druid-core-version>1.2.8</druid-core-version>
<sharding-jdbc.version>4.0.0-RC1</sharding-jdbc.version>
<jjwt.version>0.9.1</jjwt.version>
<easyExcel.version>3.0.4</easyExcel.version>
<xxl-job-core.version>2.3.0</xxl-job-core.version>
<spring-boot.version>2.5.3</spring-boot.version>
<joda-time.version>2.10.5</joda-time.version>
<google.guava.version>30.0-jre</google.guava.version>
<knif4j.version>2.0.2</knif4j.version>
<hutool.version>5.7.21</hutool.version>
</properties>
<!--依赖资源的版本锁定-->
<dependencyManagement>
<dependencies>
<!--引入springboot依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<!--将springboot中锁定的资源依赖与当前工程锁定的资源依赖进行合并-->
<scope>import</scope>
</dependency>
<!--引入mybatis场景依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<!--pageHelper场景依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper-spring-boot-starter.version}</version>
</dependency>
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-driver.version}</version>
</dependency>
<!--shardingjdbc分库分表-->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>${sharding-jdbc.version}</version>
</dependency>
<!--json工具包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!--druid-boot依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid-spring-boot-starter.version}</version>
</dependency>
<!--druid core-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-core-version}</version>
</dependency>
<!--引入jwt依赖-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- 导出 excel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyExcel.version}</version>
</dependency>
<!--xxl-job定义任务框架支持-->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${xxl-job-core.version}</version>
</dependency>
<!--时间小工具-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
<!--引入google的工具集-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${google.guava.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-swagger2.version}</version>
</dependency>
<!--knife4j的依赖-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knif4j.version}</version>
</dependency>
<!--hutool万能工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--管理插件-->
<build>
<!--引入插件的版本锁定-->
<pluginManagement>
<plugins>
<!--Springboot核心插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<!--防止打包时出现找不到springboot启动类的情况-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<!--插件运行时排除依赖-->
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
构建common工程
标签:spring,day01,boot,笔记,学习,version,com,starter,stock From: https://blog.csdn.net/qq_56937026/article/details/139372626