搭建项目后台系统基础架构

任务描述

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

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

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

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

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依赖

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海豚调度系列之:任务类型——SQL节点

海豚调度系列之&#xff1a;任务类型——SQL节点 一、SQL节点二、创建任务三、任务参数四、任务样例五、运行该任务成功之后在hive中查询结果六、使用前置sql和后置sql示例 一、SQL节点 SQL任务类型&#xff0c;用于连接数据库并执行相应SQL。 二、创建任务 点击项目管理-项…

清廉机关建设宣传稿件怎样联系媒体投稿发表?

在推进清廉机关建设的伟大征程中,我们深知信息宣传的重要性。如何将清廉机关建设的成果和理念广泛传播,让更多人了解并参与到这一伟大事业中来,成为我们面临的重要课题。 过去,我们或许曾经历过联系媒体投稿的种种心酸。一家家媒体的联系,一次次的等待与回复,其中的艰辛与不易…

春风吹又生的开源项目「GitHub 热点速览」

随着上周知名 Switch 开源模拟器 Yuzu&#xff08;柚子&#xff09;被任天堂起诉&#xff0c;该项目作者就删库了&#xff0c;但还是要赔偿任天堂数百万美元。此事还在 GitHub 上掀起了一波 Yuzu fork 项目的小浪潮&#xff0c;正所谓野火烧不尽&#xff0c;春风吹又生。 很多读…

Unity使用Addressable热更新

先看热更新的gif: Addressable是Unity推出的打ab包方案。不需要手动写AB打包脚手架了&#xff0c;不需要关心依赖&#xff0c;这也简化了ab热更新的流程。Addressable打包需要先将资源放入group中&#xff0c;按group来打包&#xff0c;每个group对应一个ScriptableObject的配置…

大模型学习笔记(一):部署ChatGLM模型以及stable-diffusion模型

大模型学习笔记&#xff08;一&#xff09;&#xff1a;部署ChatGLM模型以及stable-diffusion模型 注册算力平台&#xff08;驱动云平台&#xff09;1.平台注册2.查看算力3.进入平台中心 部署ChatGLM3-6B模型1.创建项目2.配置环境设置镜像源、克隆项目修改requirements 3.修改w…

【git报错】【重置代理】Failed to connect to github.com port 443: Connection refused

重置代理 git config --global --unset http.proxy git config --global --unset https.proxy

VC-旅游系统-213-(代码+说明)

转载地址: http://www.3q2008.com/soft/search.asp?keyword旅游系统 旅游信息管理系统开题报告 一、研究目的 旅游信息管理系统能帮助旅行社在游客的市场开拓、游客的信息管理、客户服务等方面进行综合处理。使旅行社能够准确的掌握客户的市场动态&#xff0c;充分了解对客户…

嵌入式学习day37 数据结构

1.sqlite3_open int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 功能: 打开数据库文件(创建一个数据库连接) 参数: filename:数据库文…

华为配置OSPF的Stub区域示例

配置OSPF的Stub区域示例 组网图形 图1 配置OSPF Stub区域组网图 Stub区域简介配置注意事项组网需求配置思路操作步骤配置文件 Stub区域简介 Stub区域的ABR不传播它们接收到的自治系统外部路由&#xff0c;在Stub区域中路由器的路由表规模以及路由信息传递的数量都会大大减少…

有来团队后台项目-解析7

sass 安装 因为在使用vite 创建项目的时候&#xff0c;已经安装了sass&#xff0c;所以不需要安装。 如果要安装&#xff0c;那么就执行 npm i -D sass 创建文件 src 目录下创建文件 目录结构如图所示&#xff1a; reset.scss *, ::before, ::after {box-sizing: border-…

使用CrossOver 在Mac 运行Windows 软件|D3DMetal是什么技术,

CrossOver Mac 使用特点 • 免费试用 14 天&#xff0c;可使用 CrossOver Mac 全部功能&#xff0c;• 试用过期会保留之前安装的 Windows 软件• 使 Mac 运行 Windows 程序 使用CrossOver在Mac上运行Windows软件是一个方便且无需安装完整Windows操作系统的解决方案。CrossOve…

macOS安装maven

官网下载maven https://maven.apache.org/download.cgi如下图所示&#xff1a; 1.解压并复制到指定的目录中2.配置环境变量 vim ~/.bash_profile进行文件的修改 export M2_HOME/Users/fanfan/company/apache-maven-3.9.6 export PATH$PATH:$M2_HOME/bin3.终端中输入source ~…

如何从笔记本电脑恢复已删除的照片

人们相信照片是回忆一生中最难忘事件的最佳媒介。人们在计算机上收集超过 5 GB 的照片是很常见的。然而&#xff0c;在笔记本电脑上保存照片并不安全&#xff0c;因为您可能会因以下原因有意或无意地删除笔记本电脑上的照片&#xff1a; 您的笔记本电脑存储空间几乎已满。您必…

【Vite+Ts】自动按需引入Element-Plus

安装插件 cnpm i -D unplugin-vue-components unplugin-auto-import unplugin-element-plus修改vite.config.ts // vite.config.ts import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; impor…

WWW2024 | PromptMM:Prompt-Tuning增强的知识蒸馏助力多模态推荐系统

论文&#xff1a;https://arxiv.org/html/2402.17188v1 代码&#xff1a;https://github.com/HKUDS/PromptMM 研究动机 多模态推荐系统极大的便利了人们的生活,比如亚马逊和Netflix都是基于多模态内容进行推荐的。对于研究,人们也遵循工业界的趋势,进行modality-aware的用户…

智能化工厂大屏监控

通过采集和整合工厂各个环节的数据&#xff0c;包括设备状态、生产进度、质量指标、能源消耗等&#xff0c;并将这些数据以图表、动画、报表等形式展示在大屏上。 智能化工厂大屏监控可以提供以下优势&#xff1a; 实时监控&#xff1a;通过大屏幕展示工厂各项数据&#xff0c…

分布式链路追踪(一)SkyWalking(1)介绍与安装

一、介绍 1、简介&#xff1a; 2、组成 以6.5.0为例&#xff0c;该版本下Skywalking主要分为oap、webapp和agent三部分&#xff0c;oap和webapp分别用于汇总数据和展示&#xff0c;这两块共同组成了Skywalking的平台&#xff1b;agent是探针&#xff0c;部署在需要收集数据的…

如何“使用Docker快速安装Jenkins,在CentOS7”?

1、运行 docker run -d --namejenkins -p 8080:8080 jenkins/jenkins 2、查看日志 &#xff0c;使用 "docker logs -f jenkins",可以持续刷新日志 docker logs jenkins 3、通过命令查看密码 docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminP…

Spring框架----AOP全集

一&#xff1a;AOP概念的引入 首先我们来看一下登录的原理 如上图所示这是一个基本的登录原理图&#xff0c;但是如果我们想要在这个登录之上添加一些新的功能&#xff0c;比如权限校验 那么我们能想到的就有两种方法&#xff1a; ①&#xff1a;通过对源代码的修改实现 ②&a…

vim相关命令

vim 三种工作模式&#xff1a;命令模式、文本模式、末行模式 命令模式&#xff1a;通过vi hello.c 命令进入i a o 、I A O、 s S 可以切换到文本模式 &#xff0c;写完后保存退出 o光标 回到下一行O光标回到上一行s删除当前字母S删除一整行A回到该行末尾处a光标回到下一个输入…