## 项目学习流程
### 0、参考链接&&工具使用
#### 1、参考链接
#### 2、工具使用
##### 1、项目接口版本管理工具
APIFOX工具
##### 2、远程仓库
GitHub
### 1、maven项目搭建
#### 1、项目结构图
**<img src="https://raw.githubusercontent.com/Francis-cell/Picture/main/image-20230305165613726.png" alt="image-20230305165613726" style="zoom:80%;" />**
#### 2、父pom.xml配置
```xml
<!-- SpringBoot版本配置,可以到Spring官网上去选择 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
</parent>
```
#### 3、子pom.xml配置
```xml
<!-- 子项目直接可以使用父项目中声明的SpingBoot版本信息 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
```
#### ==注意==:
每搭建一步,都测试一下项目是否能成功运行,这样方便排查问题所在!!!
#### Append
##### 1、关于dependencies和dependencyManager区别&使用
###### 1、dependencies
父项目:
```bash
声明
```
子项目:
```bash
"不需要声明"就可以引入相应的jar
```
###### 2、depenedencyManager
父项目:
```bash
只声明依赖,不实现引入;
父项目可以声明jar对应的版本version信息
```
子项目:
```bash
需要显式的声明,但是可以继承父项目的version信息,可以做到调控jar版本的作用
```
### 2、注册中心的搭建
#### 0、参考链接
1、[Nacos参考文档](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html)
#### 1、搭建Nacos运行环境
##### 1、安装Nacos
```bash
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
```
##### 2、启动服务器
- ==注==:Nacos的运行需要以至少2C4g60g*3的机器配置下运行。
**windows**
```cmd
startup.cmd -m standalone
```
**Linux**
```bash
# 启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
# 如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
```
##### 3、配置流程
###### 1、配置maven依赖
```xml
<!-- 引入Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
```
这里需要注意使用的Nacos版本--SpringCloud版本--Spring版本
参考网站:[毕业版本依赖关系(推荐使用)Nacos](https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E#%E6%AF%95%E4%B8%9A%E7%89%88%E6%9C%AC%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB%E6%8E%A8%E8%8D%90%E4%BD%BF%E7%94%A8)
我这里使用的Nacos版本是2.1.1RELEASE版本
**![image-20230306220911823](https://raw.githubusercontent.com/Francis-cell/Picture/main/image-20230306220911823.png)**
所以对应的SpringCloud版本为2.2.9RELEASE
**![image-20230306221004661](https://raw.githubusercontent.com/Francis-cell/Picture/main/image-20230306221004661.png)**
找到对应的Srping版本为2.3.12RELEASE
###### 2、配置yml文件
```yaml
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
application:
name: api-passenger
```
###### 3、Application文件添加@EnableDiscoveryClient注解
```java
@SpringBootApplication
@EnableDiscoveryClient
public class ApiPassengerApplication {
public static void main(String[] args) {
SpringApplication.run(ApiPassengerApplication.class);
}
}
```
###### 4、启动Nacos并登陆监听
**![image-20230306221203800](https://raw.githubusercontent.com/Francis-cell/Picture/main/image-20230306221203800.png)**
### 3、用户服务相关接口开发
#### 1、用户获取验证码接口
##### 1、时序图
**<img src="https://raw.githubusercontent.com/Francis-cell/Picture/main/image-20230305170449490.png" alt="image-20230305170449490" style="zoom:80%;" />**
##### 2、==骨架==编写
###### 1、编写接口Controller层
```java
@RestController
public class VerificationCodeController {
@Autowired
private VerificationCodeService verificationCodeService;
@GetMapping("/verification-code")
public String verificationCode(@RequestBody VerificationCodeDTO verificationCode) {
String passengerPhone = verificationCode.getPassengerPhone();
System.out.println("接收到的电话号码为:" + passengerPhone);
return verificationCodeService.generateVerificationCode(passengerPhone);
}
}
```
###### 2、编写实体类
```java
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
public class VerificationCodeDTO {
/** 电话号码 */
private String passengerPhone;
}
```
###### 3、编写服务Service层
```java
@Service
public class VerificationCodeService {
public String generateVerificationCode(String passengerPhone) {
// 调用验证码服务,获取验证码
System.out.println("调用验证码服务,获取验证码");
String code = "111111";
// 存入Redis
System.out.println("存入Redis");
// 创建JSON(在这里需要在pom.xml里面引入JSON)
JSONObject result = new JSONObject();
result.put("code", 1);
result.put("message", "success");
// 返回值
return result.toString();
}
}
```
#### 2、用户发送验证码
##### 1、时序图
**<img src="https://raw.githubusercontent.com/Francis-cell/Picture/main/image-20230402103130498.png" alt="image-20230402103130498" style="zoom:80%;" />**
##### 2、骨架编写
###### 1、编写接口Controller层
```java
/**
* 校验验证码信息
* @param verificationCodeDTO 校验信息
* @return
*/
@PostMapping("/verification-code-check")
public ResponseResult checkVerificationCode(@RequestBody VerificationCodeDTO verificationCodeDTO) {
// 获取手机号和验证码信息
String passengerPhone = verificationCodeDTO.getPassengerPhone();
String verificationCode = verificationCodeDTO.getVerificationCode();
System.out.println("获取到的手机号:" + passengerPhone + ", 验证码: " + verificationCode);
return verificationCodeService.checkCode(passengerPhone, verificationCode);
}
```
###### 2、编写实体类
```java
@Data
public class TokenResponse {
/** token */
private String token;
}
```
###### 3、编写服务Service层
```java
/**
* 校验用户手机号+验证码的服务
* @param passengerPhone 手机号
* @param verificationCode 验证码
* @return
*/
public ResponseResult checkCode(String passengerPhone, String verificationCode) {
// 1、根据手机号,从Redis中获取对应的验证码信息
System.out.println("根据手机号,从Redis中获取对应的验证码信息");
// 2、进行校验
System.out.println("进行校验");
// 3、如果原本没有用户信息,则先进行插入;如果原本有用户,则进行查询
System.out.println("如果原本没有用户信息,则先进行插入;如果原本有用户,则进行查询");
// 4、颁发token
System.out.println("颁发token");
// 设置token
TokenResponse tokenResponse = new TokenResponse();
tokenResponse.setToken("token string");
return ResponseResult.success(tokenResponse);
}
```
#### 3、生成双token服务
参看知识点补充部分双token
#### 4、查询用户信息接口
##### 1、查询乘客用户信息时序图
**<img src="https://raw.githubusercontent.com/Francis-cell/Pictu
没有合适的资源?快使用搜索试试~ 我知道了~
网约车学习项目-taxi-test-project.zip
共83个文件
java:35个
xml:14个
class:12个
需积分: 0 0 下载量 43 浏览量
2023-11-06
23:09:04
上传
评论
收藏 82KB ZIP 举报
温馨提示
网约车学习项目-taxi-test-project
资源推荐
资源详情
资源评论
收起资源包目录
网约车学习项目-taxi-test-project.zip (83个子文件)
taxi-test-project-main
api-passenger
pom.xml 1KB
src
main
resources
application.yml 200B
java
com
zmr
apipassenger
controller
VerificationCodeController.java 2KB
TokenController.java 913B
TestController.java 883B
UserController.java 895B
ForecastPriceController.java 1KB
service
UserService.java 1KB
TokenService.java 3KB
VerificationCodeService.java 5KB
ForecastPriceService.java 1KB
ApiPassengerApplication.java 626B
remote
ServicePassengerUserClient.java 954B
ServiceVerificationClient.java 782B
interceptor
InterceptorConfig.java 1KB
JwtInterceptor.java 2KB
target
classes
application.yml 200B
com
zmr
apipassenger
controller
TestController.class 634B
VerificationCodeController.class 2KB
service
VerificationCodeService.class 3KB
ApiPassengerApplication.class 926B
request
VerificationCodeDTO.class 997B
remote
ServiceVerificationClient.class 817B
api-passenger-1.0-SNAPSHOT.jar 6KB
maven-status
maven-compiler-plugin
compile
default-compile
createdFiles.lst 283B
inputFiles.lst 558B
testCompile
default-testCompile
createdFiles.lst 0B
inputFiles.lst 0B
maven-archiver
pom.properties 62B
api-passenger.iml 80B
pom.xml 3KB
service-verificationcode
pom.xml 875B
src
main
resources
application.yml 149B
java
com
zmr
serviceVerificationCode
controller
TestController.java 429B
NumberCodeController.java 1KB
ServiceVerificationCode.java 566B
target
classes
application.yml 149B
com
zmr
serviceVerificationCode
controller
NumberCodeController.class 2KB
TestController.class 657B
ServiceVerificationCode.class 885B
.idea
jarRepositories.xml 1KB
uiDesigner.xml 9KB
qaplug_profiles.xml 411B
vcs.xml 180B
misc.xml 617B
inspectionProfiles
Project_Default.xml 1KB
compiler.xml 1KB
gradle.xml 139B
.gitignore 221B
sonarlint
issuestore
8
e
8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d 0B
index.pb 59B
6
a
6a14faf25fa0521f8c0e7ea6453f80bb4635ee21 0B
5
0
5044f8c7b3e168f83356be69dc71554c48b493cc 0B
4
4
442ebbf06f4714c23c6d9d6be4b447e1b5ec8140 0B
encodings.xml 474B
$PROJECT_FILE$ 364B
service-passenger-user
pom.xml 1KB
src
main
resources
application.yml 430B
java
com
zmr
servicePassengerUser
mapper
PassengerUserMapper.java 386B
controller
TestController.java 436B
UserController.java 1KB
ServicePassengerUserApplication.java 740B
service
UserService.java 3KB
online-taxi-public.iml 80B
README.md 9KB
internal-common
pom.xml 511B
src
main
java
com
zmr
internalCommon
constant
CommonStatusEnum.java 808B
IdentityConstants.java 359B
TokenConstants.java 392B
response
NumberCodeResponse.java 290B
ForecastPriceResponse.java 306B
TokenResponse.java 339B
request
ForecastPriceDTO.java 493B
VerificationCodeDTO.java 367B
dto
TokenResult.java 322B
PassengerUser.java 721B
ResponseResult.java 2KB
util
RedisPrefixUtils.java 942B
JwtUtils.java 4KB
target
classes
com
zmr
internalCommon
constant
CommonStatusEnum.class 2KB
response
NumberCodeResponse.class 1KB
dto
ResponseResult.class 4KB
internal-common.iml 80B
共 83 条
- 1
资源评论
武昌库里写JAVA
- 粉丝: 3136
- 资源: 1872
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功