1-4 云商城项目工程搭建,java最新技术栈

test

org.junit.vintage

junit-vintage-engine

org.springframework.boot

spring-boot-devtools

runtime

true

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

org.springframework.boot

spring-boot-maven-plugin

2.2 各个模块父工程搭建

我们可以按照功能分类,给每类工程创建一个父工程,方便管理。

mall-api:存储所有数据库表对应的Bean和Feign接口

mall-gateway:存储所有微服务网关

mall-service:存储所有微服务工程

mall-util:存储公共工程

mall-web:存储所有和页面渲染有关的工程

mall-api

创建模块工程的时候我们只创建一个普通的maven工程即可。

1-4 云商城项目工程搭建,java最新技术栈

相关属性设置

1-4 云商城项目工程搭建,java最新技术栈

因为mall-api也是个父工程,所以packaging也设置为pom类型

1-4 云商城项目工程搭建,java最新技术栈

pom文件的内容

<?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”>

bobo-vip-mall

com.bobo.vip.mall

1.0-SNAPSHOT

4.0.0

mall-api

pom

存放所有JavaBean和Feign接口

安装上面的步骤创建对应的其他几个模块的父工程。

mall-gateway

网关模块的父工程

1-4 云商城项目工程搭建,java最新技术栈

对应的pom文件内容

<?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”>

bobo-vip-mall

com.bobo.vip.mall

1.0-SNAPSHOT

4.0.0

mall-gateway

pom

存放微服网关集群

mall-service

pom文件的内容

<?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”>

bobo-vip-mall

com.bobo.vip.mall

1.0-SNAPSHOT

4.0.0

pom

mall-service

所有的应用服务

mall-util

对应的pom文件中的内容

<?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”>

bobo-vip-mall

com.bobo.vip.mall

1.0-SNAPSHOT

4.0.0

pom

mall-util

存放所有公共工程

mall-web

对应的pom文件的内容

<?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”>

bobo-vip-mall

com.bobo.vip.mall

1.0-SNAPSHOT

4.0.0

pom

mall-web

存放所有和页面渲染有关的工程,不建议放在service中,所有service只提供基于RESTful的服务

创建好的目录结构:

1-4 云商城项目工程搭建,java最新技术栈

2.3 公共工程搭建

公共依赖汇总

service中以后要创建微服务工程操作数据库,我们可以把所有service需要用到的包以及所有service需要初始化的对象放到一个独立的工程中,以后哪个工程要用,直接依赖即可。

mall-util中创建mall-service-dependency,pom.xml依赖如下:

<?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”>

mall-util</a

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

rtifactId>

com.bobo.vip.mall

1.0-SNAPSHOT

4.0.0

mall-service-dependency

所有service工程依赖的包汇总以及初始化工具包

org.springframework.boot

spring-boot-starter-web

com.baomidou

mybatis-plus-boot-starter

3.3.2

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-data-redis

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

公共工具包

我们需要用到的工具包也可以单独放到一个工程中,每次要用,直接依赖即可。

mall-util中创建mall-common,我们在工程中创建2个对象:

用于指定响应状态码的枚举对象:com.bobo.mall.util.RespCode

package com.bobo.mall.util;

public enum RespCode {

SUCCESS(20000, “操作成功”),

ERROR(50000, “操作失败”),

SYSTEM_ERROR(50001, “系统错误”);

private Integer code;

private String message;

RespCode(Integer code, String message) {

this.code = code;

this.message = message;

}

RespCode() {

}

public Integer getCode() {

return code;

}

public void setCode(Integer code) {

this.code = code;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

用于响应用户信息封装的对象:com.bobo.mall.util.RespResult

package com.bobo.mall.util;

import java.io.Serializable;

public class RespResult implements Serializable {

//响应数据结果集

private T data;

/**

  • 状态码

  • 20000 操作成功

  • 50000 操作失败

*/

private Integer code;

/***

  • 响应信息

*/

private String message;

public RespResult() {

}

public RespResult(RespCode resultCode) {

this.code = resultCode.getCode();

this.message = resultCode.getMessage();

}

public RespResult(T data, RespCode resultCode) {

this.data = data;

this.code = resultCode.getCode();

this.message = resultCode.getMessage();

}

public static RespResult ok() {

return new RespResult(null, RespCode.SUCCESS);

}

public static RespResult ok(Object data) {

return new RespResult(data, RespCode.SUCCESS);

}

public static RespResult error() {

return new RespResult(null, RespCode.ERROR);

}

public static RespResult error(String message) {

return secByError(RespCode.ERROR.getCode(),message);

上一篇:关于代码的那些低级错误,都是血泪的教训


下一篇:mall整合Redis实现缓存功能