# domain_system_java **Repository Path**: domain-system-Java/domain_system_java ## Basic Information - **Project Name**: domain_system_java - **Description**: 域名系统后端开发 Springboot+Vue - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/domain-system-Java/domain_system_java - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-03-08 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 域名系统部署文档 本文档为域名系统部署文档,其中涉及Springboot、Vue2、ELementUI、Python、flask、neo4j等技术栈。 ## 1. 部署后台系统 ![183b8fc953063462948d7aa530b3d5b1](https://gitee.com/lyxahut/typora-pic/raw/master/183b8fc953063462948d7aa530b3d5b1.png) ![image-20250824183737085](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250824183737085.png) ![image-20250824183841976](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250824183841976.png) ### 环境配置 参考博客:https://blog.csdn.net/kou869929526/article/details/125679503 本项目后台主要使用Springboot开发,使用的jdk为jdk17版本,在构建maven之前首先要确保有jdk17环境。 ![image-20250713190832320](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713190832320.png) 参考上面博客的内容完成:Java、Maven等环境变量的配置image-20250713175154633 ### 安装步骤 - git clone https://gitee.com/domain-system-Java/domain_system_java.git - 使用maven引入依赖 - 将spba_structure_utf8_20250713.sql文件导入数据库 - 修改application-dev.yml文件中mysql、redis配置项,将用户密码设置为自己的数据库的用户密码 - 从master新建一个分支,然后使用git merge合并`ubuntu_java`或者`dev_nodeMonitor_lyx`分支,获取最新代码 - 获取客户端真实ip地址,需要配置nginx ### 目录结构 ```text ├── SpbaApiApplication 项目启动类 | ├── config 配置类 | ├── controller 控制器 | |── dao 数据访问层 | ├── domain 实体类 │ ├── dto 数据传输对象 │ ├── entity 数据表实体类 │ ├── es Elasticsearch实体类 | ├── exception 异常处理 | ├── interceptor 拦截器 | ├── service 服务接口层 │ ├── impl 服务接口实现层 | ├── utils 工具类 | ├── resources | ├── mapper SQL对应的XML文件 ``` ### 编程规范(不是必须) ```text 规范不是为了约束和禁锢大家的创造力,而是为了在团队实际开发过程中,提高项目的开发效率。以下规范,仅供参考。 可以直接把这个规范丢给Trae或者cursor的规则里面,让AI也遵从这个编程规范 1.路由规范 • 推荐使用restful命名, 规范如下: • GET /admins 获取管理员列表 • GET /admin/{id} 获取管理员详情 • POST /admin 新增管理员 • PUT /admin 编辑管理员 • DELETE /admin/{id} 删除管理员 2.controller层规范 • 不做任何的业务逻辑操作 • 负责协同和委派业务,充当路由的角色,每个方法要保持简洁 • 不做任何的参数、业务校验,参数校验只允许使用@Valid 注解做简单的校验 • 只允许在 method 上添加 RequestMapping 注解,不允许加在 class 上 3.service层规范 • 合理拆分 service 文件,如果业务较大,请拆分为多个 service。 • 谨慎处理 @Transactional 事务注解的使用,不要简单对 service 的方法添加个 @Transactional。应当合并对数据库的操作,尽量减少添加了@Transactional方法内的业务逻辑。 4.dao层规范 • 优先使用 Mybatis-plus 框架 • 所有 Dao 继承自 BaseMapper • 禁止使用 Mybatis-plus 的 Wrapper 条件构建器 • 禁止直接在 Mybatis xml 中写死常量,应从 dao 中传入到 xml 中 • 建议不要使用星号 * 代替所有字段 5.dao层方法命名规范 • 获取单个对象的方法用 getInfo 做前缀 • 获取分页对象的方法用 getList 做前缀 • 获取所有对象的方法用 getAll 做前缀 • 获取统计值的方法用 getCount 做前缀 • 插入的方法用 save • 修改的方法用 update • 删除的方法用 delete • 建议:dao层方法命名尽量以sql语义命名,避免与业务关联。命名与业务关联,局限了dao方法的使用场景和范围,降低了方法的复用性,造成他人困惑以及重复造轮子。 ``` ## 2. 部署前端页面 该项目基于Vue,使用vue-cli3脚手架,引用Element UI组件库、Echarts等,作为一套基础的后台系统,适用于绝大部分的后台管理系统开发。 ### 安装步骤 - git clone https://gitee.com/domain-system-Java/domain_system_vue.git - cd 目录名称 - npm install - npm run serve - 浏览器访问:[http://localhost:8080](http://localhost:8080/) 注意: npm install需要在运行前开启代理的Tun模式(因为源仓库在国外),如果不能实现该步骤,有以下两个解决方案: 1. 使用国内淘宝镜像,参考博客:https://developer.aliyun.com/article/383274 - 临时使用: npm --registry https://registry.npm.taobao.org install express - 持久使用: npm config set registry https://registry.npm.taobao.org - 配置后可通过下面方式来验证是否成功 `npm config get registry` 或 `npm info express` - 如果淘宝源不能用的话,可以百度一下换其他源 2. 使用我压缩的`node_modules.zip`,将代码中的`node_modules`文件夹删除,解压之后放在对应位置即可。 这样如果遇到一些编译错误,只要重装部分工具即可。代码放在部署的服务器上了,通过mobaxTerm下载到本地即可。![image-20250713180450953](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713180450953.png) ## 3. 部署flask web项目 由于本项目的部分功能需要使用python来进行域名解析图谱的绘制,所以还需要启动一个flask轻量级项目。 该项目涉及到python、flask、vis.js等技术栈。 ### 安装步骤 - 在服务器上找到`flask_web_deploy.tar.gz`,位置:/home/yuxiang/flask_web_deploy.tar.gz 下载到本地电脑后解压。 ![image-20250713181312044](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713181312044.png) - 安装所需要的工具: pip3 install -r requirement.txt ```text flask dnspython pymysql flask-sqlalchemy requests py2neo pyvis ``` - 运行app.py : `python3 app.py` - 点击网页检查是否运行成功:![image-20250713181748238](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713181748238.png) - 该系统需要的数据库文件也已导出:`flask_dnsinfo_domain_query_2025-07-13_181856.sql`![image-20250713182144063](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713182144063.png) - 后续还要进行进一步优化,需要做到一天更新一次查询域名的信息,所以以后也会把这个系统放在git上。 ## 4. 部署Neo4j图数据库 neo4j是一个强大的图数据库工具,在本系统中,使用springboot调用neo4j获取相关节点的图信息,再通过vis.js绘制节点监测中的节点图谱 linux的部署步骤以及问题已经放在语雀文档了,这里主要说明windows的安装步骤。 windows:https://www.yuque.com/xiangl-jm6y3/etekrw/sk1n5kx80oqhni35?singleDoc# 《Neo4j》 密码:qgut ### 安装步骤 - 在语雀中找到知识图谱-Neo4j文档,有neo4j的安装步骤和操作手册,有问题可以百度更详细的步骤。 - 安装完成后设置用户名和密码,注意修改密码后需要在springboot项目中neo4j的配置信息同步修改。 - 从服务器中找到neo4j.dump,这是我本地的neo4j数据库的数据,下载。![image-20250713183303357](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713183303357.png) - 参考博客:https://blog.csdn.net/m0_69483514/article/details/131287480,使用dump文件导入neo4j数据库中。 - 测试是否导入成功: ```cyp MATCH (N) RETURN COUNT(N); ``` image-20250713183600917 ## 运行 - 运行后端: `cd /path/to/domain_system_java && mvn spring-boot:run `或者使用编辑器运行:![image-20250713184023213](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713184023213.png) - 运行前端: `cd /path/to/domain_system_vue && npm run server ` - 运行flask项目: `cd /path/to/flask_web && python3 app.py ` - 运行neo4j: 打开电脑powershell看服务是否启动`neo4j status`,如果没有启动: `neo4j start`![image-20250713184350038](https://gitee.com/lyxahut/typora-pic/raw/master/image-20250713184350038.png)