总结
总的来说,面试是有套路的,一面基础,二面架构,三面个人。
最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友
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依赖如下:
<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;
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;
/***
总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。
Mybatis源码解析
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;
/***
总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。
Mybatis源码解析
[外链图片转存中…(img-3R5jkJLT-1715759118531)]
[外链图片转存中…(img-Onkr1niO-1715759118531)]