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

任务描述

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。 二、创建任务 点击项目管理-项…

JVM,GC算法,垃圾回收器,类加载器,进行线上JVM性能调优。

JVM&#xff08;Java Virtual Machine&#xff0c;Java虚拟机&#xff09;是Java程序的运行环境&#xff0c;它在操作系统上提供了一个抽象层&#xff0c;使得Java程序可以独立于硬件平台运行。JVM有自己的指令集和内存管理机制&#xff0c;它负责将Java字节码转换为机器码并执…

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

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

mapperXML标签总结

MyBatis 的真正强大在于它的语句映射&#xff0c;这是它的魔力所在。由于它的异常强大&#xff0c;映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比&#xff0c;省掉了将近 95% 的代码。MyBatis 致力于减少使用成本&#xff0c;让用户能更专注于…

春风吹又生的开源项目「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:数据库文…

盲盒网站遭遇DDoS攻击,高防ip是如何起到安全防护的?

随着盲盒市场的快速发展和在线盲盒平台的普及&#xff0c;网站安全问题备受关注。其中&#xff0c;DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种常见的网络安全威胁&#xff0c;会给盲盒网站带来严重的影响&#xff0c;如网络中断、系统崩溃等问题。为了应对这种风险…

python使用rabbitmq发送消息和接收消息数据

发送消息 import pika# 设置RabbitMQ连接参数(更改账号密码) credentials pika.PlainCredentials(username, password) # 更改为自己的服务器地址 parameters pika.ConnectionParameters(192.168.0.157, 5672, /, credentials)# 建立到RabbitMQ的连接 connection pika.Bloc…

华为配置OSPF的Stub区域示例

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

自然语言处理(NLP)技术的概念及优势

自然语言处理&#xff08;NLP&#xff09;是人工智能领域的一个重要分支&#xff0c;其目标是使计算机能够理解、处理和生成人类自然语言的形式和含义。 NLP技术的优势包括&#xff1a; 实现人机交互&#xff1a;NLP技术可以使计算机与人类之间实现自然的语言交互&#xff0c…

有来团队后台项目-解析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的用户…