一、创建父类工程
首先创建一个springboot项目
idea具体创建springboot项目可以参考文档:https://javazhong.blog.csdn.net/article/details/118489205
项目名称为obwt-cloud(物流cloud:wms(仓储),tms(运输),oms(订单),bms(结算))
创建完成以后,删除不必要的文件夹,得到下图
对pom.xml文件内容进行修改
注意点:在pom文件当中,<modules>标签里面的内容因为还没有创建好子项目,里面的内容可以先注释掉
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>obwt-cloud</artifactId>
<groupId>com.obwt</groupId>
<version>0.0.1-SNAPSHOT</version>
<!--用来存放子项目 在子项目为创建的时候可以先注释-->
<modules>
<module>bms-cloud</module>
<module>tms-cloud</module>
<module>wms-cloud</module>
<module>oms-cloud</module>
</modules>
<packaging>pom</packaging>
<!--统一对jar包版本进行管理
子模块继承之后,提供作用: 锁定版本+子modlue不用写groupId和version -->
<properties>
<!-- 指定SpringBoot版本 -->
<spring-boot.version>2.5.3</spring-boot.version>
<!-- 指定SpringCloud版本 -->
<spring-cloud.version>2020.0.3</spring-cloud.version>
<!-- 指定SpringCloudAlibaba版本 -->
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<alibaba.nacos.version>2.0.3</alibaba.nacos.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
<lombok.version>1.18.14</lombok.version>
<mysql.version>5.1.41</mysql.version>
<druid.version>1.2.6</druid.version>
<mybatis.spring.boot.version>2.2.0</mybatis.spring.boot.version>
<mybaits.plus.version>3.3.2</mybaits.plus.version>
<alibaba.json.version>1.2.75</alibaba.json.version>
<!--指定jdk版本-->
<java.version>1.8</java.version>
<spring-cloud-starter-bootstrap.version>3.0.2</spring-cloud-starter-bootstrap.version>
</properties>
<dependencyManagement>
<dependencies>
<!--spring boot 2.2.2-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud Hoxton.SR1-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<optional>true</optional>
</dependency>
<!-- bootstrap 启动器 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>${spring-cloud-starter-bootstrap.version}</version>
</dependency>
<!--mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybaits.plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
<version>${mybaits.plus.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>${mybaits.plus.version}</version>
<scope>compile</scope>
</dependency>
<!--json-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${alibaba.json.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
二、创建子模块BMS
点击右键,创建一个新的springboot项目,名字叫做bms-cloud
修改子项目bms-cloud的pom.xml文件
注意点:记得在父工程的<modules>标签下面添加好<module>bms-cloud</module>
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--父项目之间的依赖-->
<parent>
<artifactId>obwt-cloud</artifactId>
<groupId>com.obwt</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.bms</groupId>
<artifactId>bms-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>bms-cloud</name>
<description>bms-cloud</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!--mysql-connector-java-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!-- SpringCloud Loadbalancer -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
</dependencies>
<build>
</build>
</project>
将application.properties文件修改成bootstrap.yml文件,因为我在pom文件有已经配置了bootstrap启动器,这里需要进行修改(不修改也可以,可以按照自己想要的配置格式来)
进行项目启动测试,简单配置bootstrap.yml,启动bms-cloud项目,创建controller文件夹,创建测试类
注意点:按照下面的配置,控制台这个时候会一直报错,因为我们还没有配置nacos,这是正常的
server:
port: 8001
spring:
datasource:
#type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.139.128:3306/work_order?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: 123456
代码
@RestController
public class TestController {
@GetMapping("/test")
public String test1(){
return "test1";
}
}
三、配置连接nacos
安装nacos,这个安装的nacos是在centos环境上,仅供参考:https://javazhong.blog.csdn.net/article/details/127158991
安装成功以后进入nacos创建一个新的服务配置,要注意Data ID和Group,这两个一个是服务名称,一个是分组名称。
将下面的内容复制到nacos的内容上就可以,注意文件要点击yaml类型
spring:
datasource:
#type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.139.128:3306/work_order?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: 123456
发布成功以后,再对bootstrap.yml文件进行编辑
这里面要特别区分的是nacos上的discovery和config内容,disvocery是服务注册和服务发现,服务注册指的是将对应的服务注册到nacos上,这样可以用于其他服务进行服务发现,而且自己也可以对其他服务进行服务发现。
server:
port: 8001
spring:
application:
# 服务名称
name: bms-cloud-service
profiles:
active: dev
cloud:
nacos:
#discovery 服务注册
discovery:
server-addr: 192.168.139.128:8848
#分组
group: LOCAL_GROUP
# 注册到nacos上的服务名称,默认{${spring.application.name}
service: ${spring.application.name}
#config 读取nacos上的服务配置
config:
file-extension: yaml
#分组
group: LOCAL_GROUP
server-addr: 192.168.139.128:8848
编辑完成bootstrop.yml,重新启动项目,这个时候项目可以正常启动成功,可以再次指向上面的controller接口进行测试。如果项目报错了no available server, currentServerAddr,这个是正常的,这个的意思是当前服务长时间不使用,这里暂时不管。
创建对应的文件夹,比如entity,dao,service这些等等
四、利用相同的方式去创建OWS、TMS和WMS
这里就不进行演示了,直接按照第二步来就可以,最终效果