一、确定环境

最近公司要上个新系统,指定由我来带两个人进行开发,既然是新项目,那么项目搭建的事就落到我的头上了。现在都是使用springboot进行开发,为此我搭环境使用的是springboot,具体java环境如下,

使用springboot的版本是2.3.3.RELEASE。使用maven进行项目管理,

总结下,我使用到的环境,

JDK:JDK1.8

springboot:2.3.3.RELEASE

maven:3.8.1

好了,使用的环境就是上面这些。搭建项目框架的第一步就要确认好使用的环境,而且要和团队成员沟通好项目环境,大家的环境一致,避免开发过程中因为环境产生问题。确认环境另一个好处是在部署的时候,减少开发和部署环境不一致。这个一定要注意生产环境,务必开发和生产使用同一套环境。

二、确定项目结构

现在后端开发都是基于springboot的web项目,web项目一般都是使用MVC的模式,所以这里也采用类似的模式。在项目maven结构组成上,采用父子项目,也就是一个主项目下有多个子module,分为下面几个,

p-admin

p-web --》负责项目启动

p-facade  --》控制层,写controller

p-service --》服务层,具体的业务处理

p-dao --》持久化层,负责和数据库打交道

p-common --》公共层,util类\入参、出参等

p-api --》提供给第三方的接口

大体的项目结构给出来了,下面看子项目间的依赖关系哈,

p-web依赖于p-service、p-common

p-service依赖于p-dao、p-common

p-api依赖于p-common

其他的依赖第三方的库暂时不看,下面再说。接下来就可以进行实际操作创建项目了。

三、创建项目

3.1、创建父项目(p-admin)

这里使用maven的父子项目结构,父项目是这样创建的,

在idea中file-->new-->project出现下面的界面,直接next就好,

到下面的界面,填写上项目名称p-admin,

最好点finish即可,这样项目便创建完成,创建完成后,项目文件夹下会有一些多余的删除即可,只保留pom.xml。可删除的有src文件夹等。

紧接着创建子项目。

3.2、创建子项目

在父项目p-admin文件夹下右键,new-->Module

显示的创建界面和父项目是一样的,

写上相应的子项目名称p-web、p-facade等即可。

这样父子项目结构就创建完成了,如下图

四、配置pom文件

4.1、父pom文件

创建完项目后,有个很重要的事情,那就是配置pom文件,关注pom文件总的打包方式、依赖关系两个方面。先看父项目的pom.xml

每创建一个子项目在父pom中就会多一个配置,

在父pom中有多个子module。

由于使用的springboot的环境,这里我引入一个父引用,

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
</parent>

引入这个的好处是可以使用其内的依赖,看下spring-boot-starter-parent中的内容,可以看到其中还有一个父引用,

从该引用名称中知道其中定义了spring-boot的依赖,可以看到定义了很多依赖,

所以,使用了spring-boot-starter-parent的项目中,可以直接使用相关依赖,不用关心版本号。

在p-admin的pom文件中还要定义其子模块的依赖,以及p-admin使用的但不在spring-boot-starter-parent中定义的依赖,这样子模块要使用的时候也不用关心版本号。

4.2、子pom文件

看下p-facade子项目中的pom文件。

五、启动项目

前面说到p-web项目用来启动项目的,看下启动类,

package com.wcj.my;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; /**
* 启动类
* @date 2023/6/03 17:04
*/
@MapperScan(basePackages = "com.wcj.my.mapper")
@SpringBootApplication()
public class StartSpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(StartSpringbootApplication.class,args);
}
}

这样就可以了,另外spring-boot有配置文件,application.yml或application.properties文件,这里使用application.yml文件,

server:
port: 8085

现在启动看下,

可以看到启动的线程ID是26352,在8005端口提供web服务,并且还有一个内部的线程池:applicationTaskExecutor。

这样一个项目就搭起来了。

总结下,搭建一个项目的一些必备步骤,

1、确定项目环境;

2、确定项目结构

3、项目搭建及测试;

在搭项目的过程中,每个人都会或多或少遇到一些坑,欢迎关注下方公众号交流。另源码也可以通过公众号获取。

搭建一个属于自己的springboot项目的更多相关文章

  1. 快速搭建一个restful风格的springboot项目

    1.创建一个工程. 2.引入pom.xml依赖,如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

  2. IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(二)

    上一篇我成功搭建了一个项目,名叫bale-project,下面我们继续搭建子模块. 在项目名称上右键,New->Module,新建一个模块. 这次我们选择Spring Initializr 起个 ...

  3. IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(一)

    新人接触springboot,IDE使用的是IntelliJ IDEA 2017.3 ,自己摸索了很久,现在自己整理一下,里面有些操作我自己也不懂是为什么这样,只是模仿公司现有的项目,自己搭建了一个简 ...

  4. IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(三)

    你得先看完前两篇文章才可以进行第三章.这章我又新建了一个模块,起名叫project-core.建立方式与(一)里面一致,一个普通的maven模块.不需要勾选archetype的那种. 大家自己建好后, ...

  5. 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目

    在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的spr ...

  6. 如何搭建一个基于nuxt.js的项目

    介绍 nuxt.js(中文官方文档)是vue.js的一个通用型应用框架,有了之前搭建vue项目的过程之后,搭建一个nuxt项目就会十分简单. 搭建步骤 1.打开命令提示符,进入到相关文件夹下: 2.使 ...

  7. 一个最小化的SpringBoot项目

    项目结构 项目基于Maven管理,注意使用了父pom <parent> <groupId>org.springframework.boot</groupId> &l ...

  8. 第一章 搭建一个通用的.net core项目框架

    项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...

  9. 基于Idea从零搭建一个最简单的vue项目

    一.需要了解的基本知识 node.js Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.N ...

  10. 搭建一个ssm框架的maven项目需要配置的文件

    单独功能需要的配置文件: 1,mybatis配置文件      mybatis-config.xml2,spring配置文件        spring-context.xml  ......3,we ...

随机推荐

  1. vmware workstation 版本合集

    各版本序列号 10.x:1Z0G9-67285-FZG78-ZL3Q2-234JG 11.x:YG74R-86G1M-M8DLP-XEQNT-XAHW2 12.x:ZC3TK-63GE6-481JY- ...

  2. Go语言:通过TDD驱动测试开发为同事写的程序优化提速——初次接触并发与channel

    正文: 假如同事已经写了一个 CheckWebsites 的函数检查 URL 列表的状态. package concurrency type WebsiteChecker func(string) b ...

  3. jQuery绑定方法

    流程/*** * 1.文件命名 * jquery.banner.1.0.0.js * jquery.banner.js * 2.添加匿名函数 * (function(){})() * 3.给插件前后添 ...

  4. 浅学git工具

    1.git工具介绍及使用 git工具直接安装: 直接运行exe文件进行安装,按默认的操作点击下一步就行了 校验: 在DOS命令行中输入:git  --version 如果能正常显示出对应的版本就是ok ...

  5. JsonCpp JSON格式处理库的介绍和使用(面向业务编程-文件格式处理)

    JsonCpp JSON格式处理库的介绍和使用(面向业务编程-文件格式处理) 介绍 JSON是一种轻量级的数据交换格式,它是一种键值对的集合.它的值可以是数字.字符串.布尔值.序列. 想知道更多有关J ...

  6. kubernetes(k8s)安装BGP模式calico网络支持IPV4和IPV6

    kubernetes(k8s)安装BGP模式calico网络支持IPV4和IPV6 BGP是互联网上一个核心的去中心化自治路由协议,它通过维护IP路由表或"前缀"表来实现自治系统A ...

  7. this关键字,static以及子类访问父类super关键字

    1.this是用来指代当前类实例化对象 public setid(id){thiis.id = id;} 即将传入的形参id赋值给当前类的id属性 2.this还可以调用方法,方法分为两种构造方法和普 ...

  8. 补五月五号java基础知识点

    1.容器类:容器类是java以类库的形式供有用户开发程序时可直接使用的各种数据结构.2.java容器框架中有两个名称分别为Collection和Set的接口,为防止名称的冲突,本书将Collectio ...

  9. 自己动手从零写桌面操作系统GrapeOS系列教程——4.1 在VirtualBox中安装CentOS

    学习操作系统原理最好的方法是自己写一个简单的操作系统. 之前讲解开发环境时并没有介绍具体的安装过程,有网友反应CentOS的安装配置有问题,尤其是共享文件夹.本讲我们就来补充介绍一下在VirtualB ...

  10. Nvidia Tensor Core-WMMA API编程入门

    1 WMMA (Warp-level Matrix Multiply Accumulate) API 对于计算能力在7.0及以上的CUDA设备,可以使用CUDA C++ API调用Tensor Cor ...