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

java源码-工程讲解

说明:
源码工程目录讲解部分,讲解过程会让大家对后端源码工程有一个大致的了解,能让大家在此改造,就可以衍生出一些新的功能,需要对java技术深入了解,需要看后续java技术讲解部分,源码也是以前很久写的代码了,只供大家学习用,方便快速上手,有些不规范的或者有bug的,大家请忽略,重在教会大家

1、 工程目录

在这里插入图片描述

整个架构是一个spring-boot 项目,java比较流行的项目,是spring-boot 管理的一个工程,大家记住就好,spring-boot 工程是一个简化了老应用spring 配置化,部署等
例如:集成spring-boot ,内置了tomcat容器,无需将代码部署到tomcat启动,tomcat 好比一个容器,能接收网络请求并启动java代码生成java虚拟机,执行java代码,如下图,老方式是java代码部署在tomcat内部
在这里插入图片描述

spring-boot 配置好jdk后,直接就可以启动

在这里插入图片描述

在这里插入图片描述
spring-boot 启动的入口

在这里插入图片描述

1.1、 父工程

对一些公共的java包进行了声明,子类如果用到了,只需要声明即可,无需要在写版本号,此工程由四个模块组成

app-management-service app-management-dao app-management-common app-management-web

子类的pom文件,只需要对父亲pom声明了包引用即可,这样能保证各个子类的包都是使用的同样的版本,防止每个子模块因版本不一样,在调用的时候,会出错,保证了子类版本的一致性

如下图,父类声明了操作mysq数据库的mybatics包,并声明了版本,dependencyManagement 代表只声明

在这里插入图片描述
子类只需要声明一下就代表用的父亲这个包了,其实看子类其实并没有写版本号在这里插入图片描述

1.2、web子模块

在这里插入图片描述

1.2.1、 AOP 环绕

在这里插入图片描述

CacheAspect 处理缓存
LogAndAuth 统一日记处理
StreamLimiting 限流

1.2.2、 网络请求

主要用于网络请求用,接受网络请求,这里用了spinrg的注解来声明一个网络请求,如登录功能
网络请求
路径 服务器地址+端口 + 项目声明的请求路径 + user/login
参数即为jsonObject 对象里面的参数,mobile 和 password等
在这里插入图片描述

1.2.3、spring-boot 程序启动入口

spring-boot 程序启动入口

1.2.4、mybatics 连接数据库配置

jdbc_config.xml mybatics 连接数据库配置

1.2.5、lua脚本

redis 限流用,为了原子性,lua脚本能保证redis 原子性处理

1.2.6、local 下的properties

ftp mysql redis 等的配置

1.2.7、sql map

mybatics 连接mysql 一些常用的查询、编辑等操作

1.2.8、applicatio.yml

启动配置文件类,spring-boot 启动的时候,会加载此文件

1.2.9、logback.xml

打印日记处理类

1.3、service 层,重在处理逻辑上

如:后端在判断登录用户名和密码是否正确报错等
在这里插入图片描述

1.4、dao 层,连接数据库查询数据

这里通过用户名和密码查询用户信息,如果没查到,代表用户为注册

在这里插入图片描述

1.5、common包、公共的工具

注册的时候,请求验证码,网络请求等都在这个包里面

在这里插入图片描述

http://www.lryc.cn/news/237344.html

相关文章:

  • K8S基础笔记
  • 十一、统一网关GateWay(搭建网关、过滤器、跨越解决)
  • C语言--每日五道选择题--Day20
  • Fourier分析导论——第6章——R^d 上的Fourier变换(E.M. Stein R. Shakarchi)
  • 音视频技术在手机上的应用与挑战
  • 三十分钟学会SCALA
  • leetcode做题笔记242. 有效的字母异位词
  • 沸点 | Ultipa 图数据库金融应用场景优秀案例首批入选,金融街论坛年会发布
  • GaussDB SQL基础语法示例-GOTO语句
  • ClickHouse 物化视图
  • 原理Redis-ZipList
  • 小迪安全笔记——Web架构篇语言中间件数据库系统源码获取
  • Linux从 全栈开发 centOS 7 到 运维
  • Harmony Ble 蓝牙App (一)扫描
  • 录制第一个jmeter性能测试脚本2(http协议)——webtour
  • 时间序列与 Statsmodels:预测所需的基本概念(1)
  • 计算机网络(持续更新…)
  • BetterDisplay Pro for Mac(显示器校准软件)
  • Node.js之TCP(net)
  • 何时使用Elasticsearch而不是MySql?
  • nodejs微信小程序 +python+PHP+图书销售管理系统的设计与实现-网上书店-图书商城-计算机毕业设计
  • 云原生周刊:Istio 1.20.0 发布 | 2023.11.20
  • Ajax基础(应用场景|jquery实现Ajax|注意事项)
  • 【SpringCloud】Eureka基于Ribbon负载均衡的调用链路流程分析
  • Springboot和Vue+MYSQL项目(基本介绍+前后端结合初步项目)+maven+mybatis
  • 基于单片机K型热电偶温度采集报警系统
  • 利用OpenCV做个熊猫表情包 二
  • 华纳云服务器怎么清理cdn缓存?
  • python functools.wraps保留被装饰函数属性
  • 【多线程 - 11、死锁】