创建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-搭建一个企业级项目的更多相关文章

  1. 一步步从零开始用 webpack 搭建一个大型项目

    开篇 很多人都或多或少使用过 webpack,但是很少有人能够系统的学习 webpack 配置,遇到错误的时候就会一脸懵,不知道从哪查起?性能优化时也不知道能做什么,网上的优化教程是不是符合自己的项目 ...

  2. 从零开始使用vue-cli搭建一个vue项目及注意事项

    一.安装node.js 1.根据电脑的自行下载node.js安装包http://nodejs.cn 2.点击安装,按照正常的的一路点击下去 3.验证安装是否成功,按键win+r,输入cmd打开命令行工 ...

  3. vue-用Vue-cli从零开始搭建一个Vue项目

    Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对 ...

  4. 从零开始搭建一个react项目

    Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...

  5. Vue.js学习笔记--菜鸟搭建一个企业级vue的项目

    vue.js新手搭建一个企业项目,从0开始 前置条件: node.npm请先安装配置好 下面开始: npm 下载vue-cli脚手架工具  确认安装成功看到版本号: 初始化项目,选用webpack(p ...

  6. 从零开始用 Flask 搭建一个网站(一)

    前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...

  7. 从零开始用 Flask 搭建一个网站(二)

    从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构.我们要搭建的网站是管理第三方集成的控制台,类似于 Slack. 本篇主要讲解数据如何 ...

  8. 从零开始用 Flask 搭建一个网站(四)

    前言 从零开始用 Flask 搭建一个网站(三) 介绍了网页前端与后端.前端与前端之间数据的交流.本节主要介绍一下如何应用 Flask-OAuthlib, 使用 Flask-OAuthlib 就可以轻 ...

  9. springboot搭建一个简单的websocket的实时推送应用

    说一下实用springboot搭建一个简单的websocket 的实时推送应用 websocket是什么 WebSocket是一种在单个TCP连接上进行全双工通信的协议 我们以前用的http协议只能单 ...

  10. 从零开始用 Flask 搭建一个网站(三)

    从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...

随机推荐

  1. [JavaScript]JS屏蔽浏览器右键菜单/粘贴/复制/剪切/选中 [转载]

    前两天在解决一个项目缺陷时,突发感兴趣,了解一下~ 1 JS事件 document.oncontextmenu // 右键菜单 document.onpaste //粘贴 document.oncop ...

  2. day05-SpringCloud Eureka-服务注册与发现02

    SpringCloud Eureka-服务注册与发现02 3.搭建EurekaServer集群-实现负载均衡&故障容错 3.1为什么需要集群EurekaServer? 微服务RPC远程服务调用 ...

  3. js开发规范

    ####################### 1.缩进 [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符. [强制] switch中缩进2个空格 [强制] 要求分 ...

  4. openGauss Datakit安装部署

    一.问题描述:目前找不到任何关于opengauuss Datakit安装部署的文档,自己来尝试踩坑. DataKit是一个以资源(物理机,数据库)为底座的开发运维工具,将上层的开发运维工具插件化,各插 ...

  5. 飞腾CPU FT-2000/4 uboot下PHY调试记录

    飞腾爱好者技术交流群码公众号"乌拉大喵喵" 一.环境说明 板子是FT-2000/4的开发板: 固件版本: ft-2004c_u-boot-v2-Ver0.3_20211223100 ...

  6. 基于QtAV的简易播放器(开源)

    这个开源代码,是我利用QtAV源码,提取其中一部分代码,进行整合到我自己项目中,做的一个小型播放器测试,至于怎么安装一些环境以及QtAV源码编译在我以前写的一篇博客中可以看到(Qt第三方库QtAV-- ...

  7. Python 组织列表

    组织列表 在创建的列表中,元素的排列顺序是无法预测的,不能总控制用户提供数据的顺序,通过组织列表的方式,来控制列表的排序 使用方法sort()对列表进行永久性排序 sort()方法:列表中值时小写时默 ...

  8. 在算数运算中,能否将 bool 值 true 视作 1?

    true == 1; true + 1; If the destination type is bool, see 4.12. If the source type is bool, the valu ...

  9. jQuery控制文本框只能输入数字[兼容IE、火狐等浏览器]

    $.fn.numeral=function(bl){//限制金额输入.兼容浏览器.屏蔽粘贴拖拽等 $(this).keypress(function(e){ var keyCode=e.keyCode ...

  10. 2021-06-19:交错字符串。 有三个字符串s1,s2,s3。判断s3是否由s1和s2交错组成的。比如s1=“abc“,s2=“123“,s3=“12ab3c“,应该返回true,因为s3去掉12

    2021-06-19:交错字符串. 有三个字符串s1,s2,s3.判断s3是否由s1和s2交错组成的.比如s1="abc",s2="123",s3=" ...