当前位置: 首页 > news >正文

阶段三:项目开发---搭建项目前后端系统基础架构:任务11:搭建项目后台系统基础架构

任务描述

1、了解搭建民航后端框架

2、使用IDEA创建基于SpringBoot、MyBatis、MySQL、Redis的Java项目

3、以原项目为参照搭建项目所涉及到的各个业务和底层服务

4、以原项目为例,具体介绍各个目录情况并参照创建相关文件夹

任务指导

1、讲框架的选择和原理

2、使用IDEA创建基于SpringBoot、MyBatis-Plus、MySQL、Redis的Java项目

  • 创建项目后端:BigData-KongGuan
  • 创建项目数据清洗端:BigData-Etl-KongGuan

3、以原项目为例,具体介绍各个目录情况并参照创建相关文件夹

  • BigData-KongGuan项目(SpringBoot项目)

  • BigData-Etl-KongGuan项目(SpringBoot项目)

任务实现

1、创建项目后端 BigData-KongGuan

    BigData-KongGuan项目是当前民航项目的后端程序,负责访问数据为前端提供查询接口,同时提供一些定时任务,例如,将HBase数据查询出来,并推送到Kafka当中,来模拟航空数据的收集过程等。

  • 创建一个基于SpringBoot+MyBatis-Plus的项目:BigData-KongGuan

  • 配置Maven插件,点击菜单“File”-> “Settings”,然后在打开的窗口按如下图所示配置Maven
  • 在com.qrsoft包上点击右键,创建Package包

  • 在项目中需要创建如下图所示的包目录结构和配置文件

  • 项目的包目录结构和配置文件的说明如下

目录

子目录/文件

目录/文件(代码)的说明

src/main/java/com/qrsoft/common/存放一些通用类
src/main/java/com/qrsoft/config/存放SpringBoot的Configuration配置类
src/main/java/com/qrsoft/controller/存放Controller控制器类
src/main/java/com/qrsoft/entity/存放实体类
src/main/java/com/qrsoft/filter/存放过滤器类
src/main/java/com/qrsoft/mapper/存放MyBatis数据访问类
src/main/java/com/qrsoft/service/存放Service接口类
src/main/java/com/qrsoft/util/存放工具类
src/main/java/com/qrsoft/ApplicationStarter.java(BigDataKongGuanApplication.java)SpringBoot的启动程序
src/main/resources/application.yml(application.properties)SpringBoot的配置文件
src/main/resources/hbase.propertiesHBase的配置文件
src/main/resources/kafka.propertiesKafka的配置文件
src/main/resources/log4j.propertiesLog4j日志的配置文件
  • 在项目的pom.xml中添加依赖,最终pom.xml文件如下
 <?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.qrsoft</groupId><artifactId>BigData-KongGuan</artifactId><version>1.0</version><parent><groupId>org.springframework.boot</groupId><version>2.4.5</version><artifactId>spring-boot-starter-parent</artifactId></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- JWT --><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-impl</artifactId><version>0.11.2</version><scope>runtime</scope></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-jackson</artifactId><version>0.11.2</version><scope>runtime</scope></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api</artifactId><version>0.11.2</version></dependency><!-- Spring Boot Security --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><!-- spring-redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.9.1</version></dependency><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.10</artifactId><version>0.10.0.0</version><exclusions><exclusion><artifactId>slf4j-log4j12</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>log4j</artifactId><groupId>log4j</groupId></exclusion><exclusion><artifactId>slf4j-api</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>log4j-slf4j-impl</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion><exclusion><artifactId>kafka-clients</artifactId><groupId>org.apache.kafka</groupId></exclusion></exclusions></dependency><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.1</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.3.1</version><exclusions><exclusion><artifactId>log4j</artifactId><groupId>log4j</groupId></exclusion><exclusion><artifactId>slf4j-log4j12</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>slf4j-api</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>log4j-slf4j-impl</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion><exclusion><groupId>com.google.guava</groupId><artifactId>guava</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.75</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.3</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
  • 更新Maven依赖

  • 最终项目的目录结构如下所示

2、创建项目数据清洗端 BigData-Etl-KongGuan

    BigData-Etl-KongGuan项目是当前民航项目的数据清洗程序,负责数据的ETL等工作。

  • 创建一个基于SpringBoot的项目:BigData-Etl-KongGuan

  • 配置Maven插件,点击菜单“File”-> “Settings”,然后在打开的窗口按如下图所示配置Maven
  • 在com.qrsoft包上点击右键,创建Package包,名为 etl

  • 在com.qrsoft.etl包上点击右键,创建如下所示的包目录结构和配置文件
  • 项目的目录结构说明

目录

子目录/文件

目录/文件(代码)的说明

src/main/java/com/qrsoft/etl/common/存放一些通用类
src/main/java/com/qrsoft/etl/common/db存放数据库连接管理类
src/main/java/com/qrsoft/etl/dao/存放数据访问类
src/main/java/com/qrsoft/etl/dao/entity存放实体类
src/main/java/com/qrsoft/etl/spark/存放Spark数据清洗任务类
src/main/java/com/qrsoft/etl/Task/存放SpringBoot定时任务类
src/main/java/com/qrsoft/etl/util/存放工具类
src/main/java/com/qrsoft/BigDataEtlKongGuanApplication.javaSpringBoot的启动程序 
src/main/resources/application.ymlSpringBoot的配置文件
src/main/resources/config.propertiesmysql的配置文件
src/main/resources/myconfig.propertiesZookeeper的配置文件
src/main/resources/log4j.propertiesLog4j日志的配置文件
  • 在项目的pom.xml中添加依赖,最终pom.xml文件如下
 <?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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.qrsoft</groupId><artifactId>etl</artifactId><version>0.0.1-SNAPSHOT</version><name>BigData-Etl-KongGuan</name><description>BigData-Etl-KongGuan</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><scala-version>2.10</scala-version><spark-version>2.0.2</spark-version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--spark--><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_${scala-version}</artifactId><version>${spark-version}</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_${scala-version}</artifactId><version>${spark-version}</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming-kafka-0-10_${scala-version}</artifactId><version>${spark-version}</version></dependency><!--Spark--><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.0.29.Final</version></dependency><!--Kafka--><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.10</artifactId><version>0.10.0.0</version><exclusions><exclusion><artifactId>slf4j-log4j12</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>log4j</artifactId><groupId>log4j</groupId></exclusion><exclusion><artifactId>slf4j-api</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>log4j-slf4j-impl</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion><exclusion><artifactId>kafka-clients</artifactId><groupId>org.apache.kafka</groupId></exclusion></exclusions></dependency><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.1</version></dependency><!--Kafka--><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.3.1</version><exclusions><exclusion><artifactId>log4j</artifactId><groupId>log4j</groupId></exclusion><exclusion><artifactId>slf4j-log4j12</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>slf4j-api</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>log4j-slf4j-impl</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion><exclusion><groupId>com.google.guava</groupId><artifactId>guava</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.75</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version></dependency><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
  • 更新Maven依赖

  • 最终项目的目录结构如下所示

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 利用node连接mongodb实现一个小型后端服务系统demo
  • LabVIEW中使用 DAQmx Connect Terminals作用意义
  • 【深度学习】图形模型基础(5):线性回归模型第四部分:预测与贝叶斯推断
  • 即插即用篇 | YOLOv5/v7引入Haar小波下采样 | 一种简单而有效的语义分割下采样模块
  • 精准注入:掌握Conda包依赖注入的艺术
  • Python不使用元类的ORM实现
  • 开源数字人项目Hallo
  • hutool ExcelUtil 导出导入excel
  • 微服务节流阀:Eureka中服务限流策略的精妙实现
  • Knife4j的原理及应用详解(四)
  • 4.MkDocs样式
  • 『C + ⒈』‘\‘
  • [ABC275A] Find Takahashi 题解
  • 基于go 1.19的站点模板爬虫
  • 记录一次排查api接口不通的问题
  • Android系统模拟器绘制实现概述
  • canvas 高仿 Apple Watch 表盘
  • css的样式优先级
  • ES6 学习笔记(一)let,const和解构赋值
  • es6(二):字符串的扩展
  • EventListener原理
  • Java超时控制的实现
  • JS学习笔记——闭包
  • Spring Cloud中负载均衡器概览
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Vue2 SSR 的优化之旅
  • VuePress 静态网站生成
  • Webpack 4x 之路 ( 四 )
  • 半理解系列--Promise的进化史
  • 工作手记之html2canvas使用概述
  • 官方解决所有 npm 全局安装权限问题
  • 好的网址,关于.net 4.0 ,vs 2010
  • 前端临床手札——文件上传
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​​【收录 Hello 算法】9.4 小结
  • #LLM入门|Prompt#3.3_存储_Memory
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (全注解开发)学习Spring-MVC的第三天
  • (三)模仿学习-Action数据的模仿
  • (五)c52学习之旅-静态数码管
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (正则)提取页面里的img标签
  • (转载)Google Chrome调试JS
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net反编译的九款神器
  • .NET框架