springboot搭建java项目

Java:(一)自己动手实现一个好用的SpringBoot后端框架(项目搭建、组件依赖) 前言 这次准备分享一篇教程:如何自己动手实现一个好用的后端框架,我会尽量使用循序渐进的方式,从项目搭建开始,到集成各种组件,到最后架构完成,并集成基础的用户体系,一步步说明如何搭建一个属于自己的后端框架。 基于现在大部分项目都是前后端分离的形式,因此本项目也是一个纯后端的架构,基于循序渐进的原则,我打算先以 SpringBoot 单体项目的形式入手,先说明如何一步步集成各种组件,到最后形成一个完整的架构,后续有空的话,我会再以微服务的形式更新一篇教程。 限于我的技术水平也有限,抱着一起学习、共同进步的心态, 阅读详情

搭建项目,离不开架构,一个好的架构可以让开发事半功倍,技术是可替换的,思想是不变的,所以在越往后的技术生涯,你听到更多的是某个技术的核心思想是怎么样的,处理了什么问题。以上,共勉。

随着开发的项目越来越多,越来越体会到项目搭建的重要性,一般情况下后台需要提供:(移动端/网页)接口服务,管理后台接口服务,服务与服务之间的接口服务,怎么让每个模块都尽可能的复用,减少重复代码。
这时就有人说了:“所有的接口服务我都放在一个项目里,这样不管是service,实体类,工具类等都能共用,不就好了吗?”
这个时候就引申了一个问题:在不影响其他的渠道服务的情况下更新某一个渠道服务,这样是不是就会出现问题呢?因为你要更新,所以这个服务需要先停服,一旦停服其他渠道也是引用的这个服务,就会无法使用,并且这个项目会越来越大,框架会交错,维护的成本也会越来越高,新人入手会使得上手困难。

怎么搭建更合适?

没有最合适只有更合适,本篇文章只是个人的一个构思,如果您有更好的方式,欢迎评论

框架选型

  • SpringBoot 2.3.5.RELEASE
  • Mybatis-plus 3.4.1
  • Knife4j 2.0.7
  • Lombok
  • Maven

项目结构

template-server-v2 #父项目
- template-core #数据库对应的entity,mapper,service,serviceImpl
- template-common #工具类
- template-service #业务处理
- template-controller #接口

工程包职责是怎么分配的

template-common

描述

主要承担template-service的工具类,比如什么MD5,aes的工具类,一些redis的工具类啥的,会放在这里

template-core

描述

主要承担了数据库表对应实体类的映射以及增删改查功。注意这里面是没有任何业务处理的,只有生成的类。
pom.xml 里面集成了 mysql 以及 mybatis-plus 以及 druid,采用mybatis-plus的代码生成插件可以快速的生成实体类service,以及mapper,更可以根据 自定义模板 生成 不同的类 放在 不同的位置
template-core 主要是为了给 template-service 所有类的CRUD操作。

优点

  • 采用mybatis-plus生成插件,不需要在idea上安装任何东西,可快速生成实体类以及对应的crud,减去了手动创建的麻烦事,可以修改生成配置,也可自定义模板
  • template-service的工程包引用template-core,如果数据库表字段新增或者变更,只需要修改 template-core 内对应的实体便可

template-service

描述

主要承担了业务的完整操作。一般复杂的业务都是由几张表的CRUD组成,因为引用了template-core,所以直接使用提供的CRUD对进行组合拼接成业务。
事务的处理也是在这里,并且 template-service 里面会有 Param 接口参数包以及 VO 视层结果包:主要是为了controller的接口参数的接收以及结果返回

优点

  • template-service 的抽离,使得 其他 controller 工程包可以引用,减少相同的代码编写,举个例子:比如我们需要做一个商城,它具有PC版+APP版+小程序版,业务相同的情况下只是 controller 以及校验规则不一样。这个时候就发挥了抽离好处

template-controller

描述

主要承担了接口供给,swagger文档显示,全局异常处理,结果集返回,请求日志保存,接口权限等有关接口处理的操作。这里不处理任何业务,做参数接收以及转发到service
如果有app的接口,管理后台的接口,pc的接口,小程序的接口,那么template-controller会对应有4个工程,可以是template-controller-app,template-controller-applets,template-controller-back,template-controller-pc,
相同的是:引用需要的 template-service 功能包;不同的是:接口校验,登录方式,接口文档,日志记录等。。。

优点

  • 不同渠道接口的分离,使得他们不管是升级还是停服都不会相互影响,因为会打多个controller的项目包。
  • 框架分离,比如我管理后台之前用的是SpringSecurity,后面用的不爽了我要改成Shiro,只需要修改template-controller-back的工程包,与其他无关,爱咋搞咋搞,搞崩了也只是崩你自己的。没毛病
  • 维护性更高,新人来了需要把管理后台的接口给到新人熟悉,只需要关注单一template-controller-back工程包,不会全部接口都挤在一起,新人头疼,自己维护也懵逼
  • 扩展性更好,如果template-controller-app需要做负载,那就做单一的工程包服务处理,其他不影响,

项目源码

点击前往码云

 

【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建 项目基于B/S架构的系统,采用Java面向对象编程思想。主要依托SpringBoot、Vue、微信小程序开发等技术,将系统用户划分为管理员和客户两类,分别通过电脑浏览器和手机微信小程序的方式登录系统。 阅读详情

相关推荐

Spring Boot与Java的多模块项目搭建

在软件开发过程中,随着项目规模的不断扩大,单一模块的项目逐渐暴露出可维护性差、代码复用困难等问题。Java作为一种广泛使用的编程语言,结合Spring Boot框架可以高效地构建企业级应用。而多模块项目的搭建能够将项目拆分成多个相对独立的模块,每个模块负责不同的功能,从而提高代码的可维护性、可扩展性和复用性。本文的范围涵盖了使用Spring Boot搭建Java多模块项目的整个过程,包括项目结构的设计、模块之间的依赖管理、核心算法的实现以及实际项目的开发和部署。背景介绍。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 610

javaweb开发jsp页面一次性保存多条数据,批量保存数据!

先看我要做成什么效果?有空扫下我们的二维码呗! 一次性保存多条数据(批量保存)比较简单方便的做法就是使用json格式,具体看我的这篇文章,批量保存数据(json版),该篇文章详细的介绍了使用json来做批量保存!有图有代码有步骤! 但是我本篇文章并没有使用json,我本篇文章使用的是字符串拼接的办法,这种办法比较笨,也比较麻烦一些,但是学习还是不要怕麻烦,一开始不要怕麻烦,等...

一只苟延残喘的卑微蝼蚁 1万+

初学java(1) 用idea 2020 搭建spring boot 项目

点击 文件 新建项目 如图 ,注意如果是默认 启动url 则 创建 项目时候,只有 java 版本 只有17和21 ,现在已经不支持 java8 所以要选择自定 路径,用阿里云的启动url java版本,就有了 java8。成功迈出了第一步, 之前搭建过spring boot 项目,但是好久没用,就不知道怎么用了,研究了两三天,一直没跑起来,一直报错。主要maven的相关配置, 如果不匹配,创建项目时候,就会一直报错,没办法下载相关配置 下载条不动。用idea创建springboot 项目 如图。

f897907070的博客 387

Day206.课程分类【导入功能】前端实现、 课程分类列表【显示功能】、课程管理【模块需求、添加课程功能】 -谷粒学院

谷粒学院 【课程分类】—导入前端实现 一、配置路由 1、添加路由 src/router/index.js //课程分类 { path: 'subject', component: Layout, redirect: '/edu/subject/list', name: 'Subject', meta: { title: '课程分类管理', icon: 'nested' }, children: [ { path: '/lis

阿昌爱Java 7488

R语言绘图进阶:五大工具高效组合多图(cowplot、patchwork、layout、par、gridExtra)

本文详细介绍了R语言中五大高效组合多图的工具:cowplot、patchwork、layout、par和gridExtra。针对不同场景提供了实用指南,帮助数据分析师解决图表排版难题,提升报告专业度。特别推荐cowplot用于ggplot2图形组合,patchwork提供最简洁语法,layout则支持完全自定义布局。

weixin_42544663的博客 286

Oracle EBS R12 AP模块发票导入接口实战:从SQL插入到API调用的完整流程

本文详细解析了Oracle EBS R12 AP模块发票导入接口的完整流程,从SQL插入到API调用的实战技巧。涵盖接口表设计、数据验证、双通道导入机制及错误诊断,特别分享官方文档未提及的高阶优化方案,助力企业实现财务数字化转型。

weixin_33728268的博客 475

批量新增

本次任务完成时间:2019年7月25日 开发工具与关键技术:MyEclipse 10、Java 在很多时候一般都会遇到需要多条数据同时新增,也就是批量新增,这时我们就需要考虑,应该怎么把多条数据同时新增。 下面是根据本人需求批量新增的步骤: 1、首先把需要新增的数据追加到一个临时的表格里(在这里操作的是多条数据一起追加)。 如下图是追加数据的代码: 如果需要多条数据同时追加,那么就需要用一个...

qq_44543430的博客 1039

密码学实战:如何利用生日攻击破解哈希函数

本文深入探讨了生日攻击在密码学中的应用及其对哈希函数的威胁。通过分析生日悖论的数学原理,揭示了哈希函数在实际应用中的脆弱性,并提供了防御策略,如升级哈希算法、正确使用加盐技术等。文章结合实战案例,帮助开发者理解如何有效防范此类攻击,确保系统安全。

weixin_42530732的博客 191

dubbo架构理解

dubbo架构理解(部分摘自时延军文章(包含链接:http://shiyanjun.cn)提到dubbo之前,我想先提另一个词,面向soa的微服务架构。什么是soa呢?这个问题不同的人肯定是见仁见智,而在我一个菜鸟而言,soa的核心就是面向服务。传统的java项目,都是将方法封装成接口,而需要使用该方法完成某个业务时调用该接口,而soa意味着封装好一个服务,当一个服务显式暴露后,客户端能够通过绑定定

ztkhhhhhd的博客 883

ui(new Ui::MainWindow)的解析

Ui命名空间的变量名,和默认空间的变量名虽然一样,但实际是两个不同的东西。所以构造函数中调用MainWindow是没问题的,因为它不是在调用自身,而是在调用其他命名空间下的另一个同名的MainWindow类。这里使用C++的成员初始化列表语法,初始化成员变量指针ui,可这里有个问题,在MainWindow的构造函数中new 一个MainWindow,这又调用一下MainWindow的构造函数,这岂不是会死循环?ui_mainwindow.h文件。mainwindow.h文件.

sinat_31608641的博客 1193

CAN总线入门(硬件部分)

这篇博客讲述CAN总线入门知识。

记得诚 1万+

Controller 中使用多个@RequestBody

最近在Controller中想要一个方法接收多个参数并且最好还能支持校验

豪华的博客 3146

以太网PHY寄存器

并且,值得注意的是,由于目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8个端口的接口是相互关联的,一个端口设置Isolate可能会影响其他端口的正常使用,因此在使用中注意不要随意更改bit10的状态。Bit10和bit11的区别是,bit11的配置在强制情况下生效,PHY只能工做与bit11指定的工作模式,而bit10的配置在非强制配置情况下生效,仅仅控制PHY在AN时候的优先级,偏向于Maser或者Slave,但是最终的工作模式看协商的结果,不一定和优先级配置的结果一致。

mangofu的博客 292

java企业开发springboot项目搭建_001、Spring Boot开发环境搭建和项目启动

上一节对 SpringBoot 的特性做了一个介绍,本节主要对 jdk 的配置、Spring Boot工程的构建和项目的启动、Spring Boot 项目工程的结构做一下讲解和分析。1. jdk 的配置本课程是使用 IDEA 进行开发,在IDEA 中配置 jdk 的方式很简单,打开File->Project Structure,如下图所:选择 SDKs在 JDK home path 中选择本...

weixin_29204205的博客 265

双像素传感器的AI计算摄影实战:单目深度估计与图像去模糊的融合创新

本文介绍了双像素传感器技术在计算机视觉中的应用,包括深度估计、图像去模糊和图像重建等任务。双像素传感器通过两个子单元捕捉视差信息,使摄像头能够分析场景的三维结构和运动轨迹。文章以图像去模糊为例,详细展示了从数据准备到模型训练的完整流程,包括构建自定义数据集、设计双像素特征提取模块、训练去模糊模型及推理测试。通过模拟双像素的"双视角"信息融合,该AI算法能有效恢复模糊图像的清晰细节。

know_F0727的博客 255

【教程4>第8章>第10节】OFDM完整通信链路项目的FPGA开发4——插入导频

本文介绍了基于MATLAB和Verilog的导频插入设计与实现方法。首先回顾了MATLAB中导频插入的算法实现,展示了每32个数据插入一个导频的设计。接着详细说明了Verilog硬件实现方案,包括导频序列定义、计数器设计、FIFO模块等关键部分。通过仿真测试验证了设计的正确性,输出了插入导频后的序列、导频序列以及调整时序后的序列。最后提供了相关视频教程资源,帮助读者理解设计过程。该设计实现了数据与导频的精确插入,为OFDM等通信系统开发提供了实用参考。

FPGA/MATLAB学习教程/源码/项目合作开发 395

IIDEA五种项目搭建方式详解(Java、JavaWeb、Maven、SpringBoot)搭建方式

本文系统梳理了IDEA中五种Java项目搭建方法,涵盖普通Java项目、普通JavaWeb项目、Maven Java项目、Maven JavaWeb项目及SpringBoot项目,重点解析了SpringBoot的五种搭建方案,特别是Maven手动改造方式。文章详细说明了各类项目的创建流程、适用场景及优缺点对比,强调企业开发应优先选用Maven及SpringBoot架构,其中Maven手动改造SpringBoot项目具有最高灵活性,是开发进阶必须掌握的核心技能。最后提供了项目选型建议,指导开发者根据实际需求选

2503_93754117的博客 201

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

mac 搭建 java spring boot项目

mac 搭建 java spring boot 项目,并完成一些登录、退出功能!

逆流而上的技术学习,真诚携手共进之陪伴的博客 600

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【java spring boot项目搭建 前置文档】

spring boot项目简单搭建

轨迹的博客 1165

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java企业开发springboot项目搭建_Java开发大型互联网Spring Boot项目精要分析

引言Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。Spring Boot精要Spring将很多魔法带入了S...

weixin_42505397的博客 175

Java 之 Spring Boot + Vue + Element UI 前后端分离项目(上-项目搭建) 【博客论坛项目高仿优快云】(一篇文章精通系列)

一、项目简介 二、后端SpringBoot项目搭建 1、项目搭建 (1)创建工程 (2)引入依赖 (3)创建其他项目文件以及配置文件 1)启动类 2)配置文件 3)webapp 4)创建完整的目录结构 2、编写数据库对应的实体类 (1)Blog (2)BlogArticle (2)BlogHeader (3)BlogType (4)Consumer 3、编写枚举类ExceptionEnum 4、编写异常处理类BlException 5、编写过滤器设置全局配置 6、编写实体类对应的mapper接口 7、编写对

程序员猫爪 950

Java|怎样快速搭建一个spring boot项目

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。问题描述当我在网站搭建学习到一定阶段的时候,我们就会学习...

算法与编程之美 687

springboot项目中需要配置文件上传解析器吗_VsCode搭建Java开发环境(Spring Boot项目创建、运行、调试)...

VsCode搭建Java开发环境(Spring Boot项目创建、运行、调试)安装如下两个主要扩展即可,这两个扩展已关联java项目开发主要使用的maven、springboot等所需要的扩展。开始步骤:在 Visual Studio Code 中打开扩展视图(Ctrl+Shift+X)。输入“java”搜索商店扩展插件。找到并安装 Java Extension Pack (Java 扩...

weixin_39553423的博客 398

详细搭建SpringBoot+Mybatis项目(Java高玩勿入)

1. 前言 1.1.写本文的目的 记录自己从0到1建立SpringBoot+Mybatis项目 方便有其他语言的开发者能够从0到1快速衔接到JavaSpringBoot项目中 为之后Java项目的案例提供基础 1.2. 本文的内容 IDEA的安装 Maven的安装 SpringBoot+Mybatis项目的搭建 启动项目,连接数据库以及代码编写

XiaoCai 7344

基于Springboot搭建java项目(三十八)——总结

这个系列的文章到此结束,也是对自己的知识结构做了一个简单的总结,在这个过程当中我有以下几点收获:1、发现自己在哪个知识点上的不足,写文章的过程当中也是对自己的一次强化,当然也还有一些知识点还需要继续探索,这些我也在文章中提到了,这些内容我还会在后续文章中进行说明的。2、对于写博文有了一些兴趣,之前我是有点懒的做这些总结的,觉得学习到的东西自己就会了,但是写出这些文章和自己能写代码还真的是两回事情,开始是困难的,后面就慢慢的好一些了,现在我对写博文有兴趣了。好了!后续再见,兄弟们~~~~

m0_46616045的博客 761
上一篇: 算法偶记:子集组合(给定一个元素个数为N的集合(其中元素互不相同),在其中选择M个元素组成子集,共有多少种选法。举例:输入[A,B,C] ,M=2,输出[[A,B],[A,C],[B,C]])
下一篇: mybatis-plus DataPermissionInterceptor IPage count 失效
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值