1-4 云商城项目工程搭建(3)

总结

面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。

我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

面试题及解析总结

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

大厂面试场景

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

知识点总结

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

在这里插入图片描述

还有一个比较重要的模块是微服务网关模块,这个我们也需要单独的放置

在这里插入图片描述

以上的模块我们都是基于Restful风格的方式进行通信,商城系统我们还需要涉及到页面渲染的部分,这部分我们也同样单独的来放置

在这里插入图片描述

最后我们将以上的微服务都放置在同一个父工程中,该父工程负责子工程、jar的管理工作

在这里插入图片描述

当然这种结构并不是唯一的,只要大家觉得合理的搭配都是可以的哦。

2、项目结构搭建


接下来我们就具体的来搭建相关的工程结构

2.1 顶级父工程搭建

我们单独来构建这个项目,顶级父工程我们通过SpringBoot的在线模板来构建。步骤如下:

在这里插入图片描述

设置系统相关的参数

在这里插入图片描述

相关的依赖选择

在这里插入图片描述

需要注意的是这部分我们可以什么都不选择,我们可以在后面具体使用的时候需要用都什么就选择什么即可,但是要注意SpringCloud Alibaba相关的依赖对SpringBoot的版本是有要求的,必须是在2.2到2.3之间的版本,但是上面最低的版本是2.3.7那么我们在创建完成后再修改下版本即可。

在这里插入图片描述

因为创建的是父工程,所以src目录没有必要,同时项目的类型应该是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 https://maven.apache.org/xsd/maven-4.0.0.xsd”>

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.2.10.RELEASE

com.bobo.vip.mall

bobo-vip-mall

0.0.1-SNAPSHOT

bobo-vip-mall

pom

商城系统

<java.version>1.8</java.version>

<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>

org.projectlombok

lombok

true

org.springframework.boot

spring-boot-starter-test

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工程即可。

在这里插入图片描述

相关属性设置

在这里插入图片描述

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

在这里插入图片描述

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

网关模块的父工程

在这里插入图片描述

对应的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的服务

创建好的目录结构:

在这里插入图片描述

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

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;

最后:学习总结——MyBtis知识脑图(纯手绘xmind文档)

学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)

image

除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

成功"),

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

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

private Integer code;

private String message;

RespCode(Integer code, String message) {

this.code = code;

最后:学习总结——MyBtis知识脑图(纯手绘xmind文档)

学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)

[外链图片转存中…(img-Ot05QBns-1715759159490)]

除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java实现秒杀系统@Controller @RequestMapping("seckill")//url:/模块/资源/{id}/细分 /seckill/list public class SeckillController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private SeckillService seckillService; @RequestMapping(value="/list",method = RequestMethod.GET) public String list(Model model){ //获取列表页 List list=seckillService.getSeckillList(); model.addAttribute("list",list); //list.jsp+model = ModelAndView return "list";//WEB-INF/jsp/"list".jsp } @RequestMapping(value = "/{seckillId}/detail",method = RequestMethod.GET) public String detail(@PathVariable("seckillId") Long seckillId, Model model){ if (seckillId == null){ return "redirect:/seckill/list"; } Seckill seckill = seckillService.getById(seckillId); if (seckill == null){ return "forward:/seckill/list"; } model.addAttribute("seckill",seckill); return "detail"; } //ajax json @RequestMapping(value = "/{seckillId}/exposer", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @ResponseBody public SeckillResult exposer(@PathVariable("seckillId") Long seckillId){ SeckillResult result; try { Exposer exposer =seckillService.exportSeckillUrl(seckillId); result = new SeckillResult(true,exposer); } catch (Exception e) { logger.error(e.getMessage(),e); result = new SeckillResult(false,e.getMessage()); } return result; } @RequestMapping(value = "/{seckillId}/{md5}/execution", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"} ) @ResponseBody public SeckillResult execute(@PathVariable("seckillId")Long seckillId,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值