从零开始整SpringBoot-搭建一个企业级项目
创建Springboot项目
在企业里的项目多数是分Modules的,更多是通过物理方式隔离层之间的职责。
首先按照原有新建SpringBoot项目创建,填好相关信息后,选择Java 8其他不用选。




完成后得到上面的结构,把红色选中的相关模块删除后,得到下面的项目结构

新建Module

什么都不需要选,下一步

填好Name后(注意前缀统一,通过-进行分割)点击完成,得出以下结构。

重复上面步骤,把sikiro-system-infrastructure、sikiro-system-repository新增上去,得到下面结构

添加项目依赖
sikiro-om-api->sikiro-om-application->sikiro-om-repository,sikiro-om-infrastructure被三层直接依赖
一共有两种方式添加:
在File->Project Structure->Modules,点击右侧的+,选择Module。

另外一种在pom.xml添加dependencies

<?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">
<parent>
<artifactId>om</artifactId>
<groupId>sikiro.system</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>sikiro-system-api</artifactId> <dependencies>
<dependency>
<groupId>sikiro.system</groupId>
<artifactId>sikiro-system-application</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>sikiro.system</groupId>
<artifactId>sikiro-system-infrastructure</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
添加Package
在sikiro-system-api项目添加新package-com.sikiro.system.api,同时添加SikiroSystemApiApplication

@SpringBootApplication()
@ComponentScan(basePackages = {"com.sikiro.system"})
public class SikiroSystemApiApplication {
public static void main(String[] args) {
SpringApplication.run(SikiroSystemApiApplication.class, args);
}
}
然后继续添加HelloController到新的package-com.sikiro.system.api.controller
@RestController
public class HelloController {
@GetMapping("/api/hi")
public ApiResult Hi(){
return ApiResult.Success();
}
}
在sikiro-system-infrastructure添加下面两个类
package com.sikiro.system.infrastructure.base; import lombok.AccessLevel;
import lombok.Setter; /**
* API统一响应实体
* @param <T> 业务实体
*/
public class ApiResult<T> { @Setter(AccessLevel.PRIVATE)
public int resultCode; @Setter(AccessLevel.PRIVATE)
public T data; @Setter(AccessLevel.PRIVATE)
public String message; @Setter(AccessLevel.PRIVATE)
public boolean success; @Setter(AccessLevel.PRIVATE)
public boolean failed; @Setter(AccessLevel.PRIVATE)
public boolean error; public static <T> ApiResult<T> Success() {
return Success(ApiResultCode.Succeed.Message(), null, ApiResultCode.Succeed.Value());
} public static <T> ApiResult<T> Success(T data) {
return Success(ApiResultCode.Succeed.Message(), data, ApiResultCode.Succeed.Value());
} public static <T> ApiResult<T> Success(String msg) {
return Success(msg, null);
} public static <T> ApiResult<T> Success(String msg, T data, int code) {
ApiResult<T> result = new ApiResult<>();
result.setMessage(msg);
result.setData(data);
result.setResultCode(code);
result.setSuccess(true);
result.setFailed(false);
result.setError(false); return result;
} public static <T> ApiResult<T> Success(String msg, T data) {
return Success(msg, data, ApiResultCode.Succeed.Value());
} public static <T> ApiResult<T> Failed() {
return Failed(ApiResultCode.Failed.Message(), null, ApiResultCode.Failed.Value());
} public static <T> ApiResult<T> Failed(String msg) {
return Failed(msg, null);
} public static <T> ApiResult<T> Failed(String msg, T data) {
return Failed(msg, data, ApiResultCode.Failed.Value());
} public static <T> ApiResult<T> Failed(String msg, T data, int code) {
ApiResult<T> result = new ApiResult<>();
result.setMessage(msg);
result.setData(data);
result.setResultCode(code); result.setSuccess(false);
result.setFailed(true);
result.setError(false); return result;
} public static <T> ApiResult<T> Error(String msg) {
ApiResult<T> result = new ApiResult<>();
result.setMessage(msg);
result.setResultCode(ApiResultCode.Error.Value()); result.setSuccess(false);
result.setFailed(true);
result.setError(true); return result;
}
}
package com.sikiro.system.infrastructure.base;
public enum ApiResultCode {
Succeed(200,"请求成功"),
Failed(400,"请求失败"),
Error(500,"服务执行异常");
private int _index;
private String _msg;
ApiResultCode(int index, String msg) {
_index = index;
_msg = msg;
}
public int Value() {
return _index;
}
public String Message() {
return _msg;
}
}
最后编辑启动配置

从零开始整SpringBoot-搭建一个企业级项目的更多相关文章
- 一步步从零开始用 webpack 搭建一个大型项目
开篇 很多人都或多或少使用过 webpack,但是很少有人能够系统的学习 webpack 配置,遇到错误的时候就会一脸懵,不知道从哪查起?性能优化时也不知道能做什么,网上的优化教程是不是符合自己的项目 ...
- 从零开始使用vue-cli搭建一个vue项目及注意事项
一.安装node.js 1.根据电脑的自行下载node.js安装包http://nodejs.cn 2.点击安装,按照正常的的一路点击下去 3.验证安装是否成功,按键win+r,输入cmd打开命令行工 ...
- vue-用Vue-cli从零开始搭建一个Vue项目
Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对 ...
- 从零开始搭建一个react项目
Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...
- Vue.js学习笔记--菜鸟搭建一个企业级vue的项目
vue.js新手搭建一个企业项目,从0开始 前置条件: node.npm请先安装配置好 下面开始: npm 下载vue-cli脚手架工具 确认安装成功看到版本号: 初始化项目,选用webpack(p ...
- 从零开始用 Flask 搭建一个网站(一)
前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...
- 从零开始用 Flask 搭建一个网站(二)
从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构.我们要搭建的网站是管理第三方集成的控制台,类似于 Slack. 本篇主要讲解数据如何 ...
- 从零开始用 Flask 搭建一个网站(四)
前言 从零开始用 Flask 搭建一个网站(三) 介绍了网页前端与后端.前端与前端之间数据的交流.本节主要介绍一下如何应用 Flask-OAuthlib, 使用 Flask-OAuthlib 就可以轻 ...
- springboot搭建一个简单的websocket的实时推送应用
说一下实用springboot搭建一个简单的websocket 的实时推送应用 websocket是什么 WebSocket是一种在单个TCP连接上进行全双工通信的协议 我们以前用的http协议只能单 ...
- 从零开始用 Flask 搭建一个网站(三)
从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...
随机推荐
- 【HALF】CSP-S2 2022 游记 - Dawn Eve?
相册放在 NOIP2022 游记 了 Day -2 周三.折腾了好几天,考场从深圳换到广州最后换到东莞.疫情爆炸... 只是希望自己最后两场比赛不会受到影响. 下午是高二体锻课,结果我们得去做核酸.四 ...
- Three.js 进阶之旅:全景漫游-高阶版在线看房 🏡
声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 摘要 专栏上篇文章<Three.js 进阶之旅:全景漫游-初阶移动相机版& ...
- Mysql关联删除CSV中的相关数据
问题描述:提供一个csv文件,记录的是一些不同数据库的不同表中的共同字段account_id数据,需要在A库的account表中做关联删除 解决思路:csv文件中储存的都是account_id,六位纯 ...
- yolov5训练自己的数据集
1.安装cuda 可以先看看自己的 显卡信息,支持哪个cuda版本 cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archive 我的RTX30 ...
- 如何建设一个用于编译 iOS App 的 macOS 云服务器集群?
作者:京东零售 叶萌 现代软件开发一般会借助 CI/CD 来提升代码质量.加快发版速度.自动化重复的事情,iOS App 只能在 mac 机器上编译,CI/CD 工具因此需要有一个 macOS 云服务 ...
- 聊一聊 Valgrind 监视非托管内存泄露和崩溃
一:背景 1. 讲故事 只要是程序总会出现各种莫名其妙的问题,比如:非托管内存泄露,程序崩溃,在 Windows 平台上一般用微软自家的官方工具 App Verifier 就可以洞察,那问题出在 Li ...
- 用go设计开发一个自己的轻量级登录库/框架吧
用go设计开发一个自己的轻量级登录库/框架吧 几乎每个项目都会有登录,退出等用户功能,而登录又不单仅仅是登录,我们要考虑很多东西. token该怎么生成?生成什么样的? 是在Cookie存token还 ...
- Grafana 系列-统一展示-2-Prometheus 数据源
系列文章 Grafana 系列文章 Grafana Prometheus 数据源 Grafana 提供了对 Prometheus 的内置支持.本文会介绍 Grafana Prometheus(也包括 ...
- selenium 执行js脚本
使用 selenium 直接在当前页面中进行js交互 使用selenium 执行 Js 脚本 要使用 js 首先要知道 js 怎么用,现在举个简单得例子,就用12306举例子, 它的首页日期选择框是只 ...
- 解决v-html渲染HTML标签展示信息有误问题
后端返回的数据内容为: // html反转义 HTMLDecode(text) { var reg = /<[^>]+>/g; if (reg.test(text)) { retur ...