zoukankan      html  css  js  c++  java
  • 从零开始整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;
        }
    
    }

    最后编辑启动配置

  • 相关阅读:
    团队项目 第一次作业
    20165201 课下作业第十周(选做)
    20165201 实验三敏捷开发与XP实践
    20165201 2017-2018-2 《Java程序设计》第9周学习总结
    20165201 结对编程练习_四则运算(第二周)
    20165201 2017-2018-2 《Java程序设计》第8周学习总结
    20165201 实验二面向对象程序设计
    20165326 java实验五
    20165326 课程总结
    20165326 java实验四
  • 原文地址:https://www.cnblogs.com/skychen1218/p/13955336.html
Copyright © 2011-2022 走看看