搭建一个springboot项目并整合其他中间件(更新中)

一、快速构建一个springboot项目

直接前往Spring Initializr进行配置然后导出项目下载

二、配置maven下载依赖

图中红字写错了,是conf/settings,不是config

配置好maven后要把settings.xml中的镜像改为国内的,加快下载速度

xml 复制代码
<mirrors>
	<mirror>
      	<id>CN</id>
      	<name>Aliyun Nexus</name>
      	<url>https://maven.aliyun.com/nexus/content/groups/public</url>
      	<mirrorOf>*</mirrorOf>
  </mirror>

	<mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
</mirrors>

配置完成后重新加载pom.xml中的依赖

三、配置项目jdk并构建启动项目

比较新的springboot对jdk是有要求的,比如springboot3适配的jdk最低版本是17

四、项目启动成功不报错后开始整合其他中间件

(一)、Redis

引入依赖redis用于连接redis,引入依赖jedis用于操作redis,引入依赖fastjson用于在操作redis时将字符产进行序列化和反序列化。 以上这些是我在翻其他博客时其他人的操作,我鼓捣了好一会儿才发现这些都是不必要的,我自己弄demo的话只要成功整合就可以了,starter已经整合好一套默认可操作的模板了。

xml 复制代码
<!-- redis -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

实际上demo直接引用一个redis的starter就可以,springboot全都整合好了可以直接用来测试。

java 复制代码
@GetMapping("/get/{key}")
public String getRedisString(@PathVariable String key){
    if (key != null){
        Object o = redisTemplate.opsForValue().get(key);
        return String.valueOf(o);
    }
    return "key is null";
}

@PostMapping("/save")
public String saveRedisString(@RequestBody Map<String, String> param){
    String key = param.get("key");
    String value = param.get("value");
    if (key != null && value != null){
        redisTemplate.opsForValue().set(key, value);
        return "ok";
    }
    return "key/value is null";
}

利用postman和redis可视化工具进行测试,到这里说明redis整合成功。

踩坑

测试的时候发现明明有@RequestBody却只能接收到body的json格式数据,没法自动解析成我对应的属性值,如下图。 问了ai后发现两种可能:

  1. 请求头没设置对,正常Content-Type应该是application/json;charset=UTF-8 ;
  2. 没引入jackson,Spring Boot 默认使用 Jackson 来解析 JSON。如果项目中没有引入相关依赖,Spring 无法找到合适的 HttpMessageConverter,就会退化为使用 StringHttpMessageConverter,直接把请求体当作纯文本字符串接收;
  3. 接收参数定义为了String,方法参数直接定义为 String,Spring 会优先匹配 StringHttpMessageConverter,直接将整个 JSON 体作为字符串赋值,而不会尝试解析为对象。(很明显我是这个问题)
xml 复制代码
<!-- 已经包含了JackSon --> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
<!-- 或者显式引入 Jackson --> 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
</dependency>
相关推荐
Java爱好狂.1 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
马良神笔3 小时前
2026 年Rag最近技术前沿总结
后端·python·django
程序猿DD3 小时前
同样10美元,OpenDesign和Command Code的DeepSeek V4.1 Flash额度到底有多少?
后端
高频因子挖掘机4 小时前
A股量化从日线升级到5分钟线:数据量增加后最先暴露哪些工程问题?
后端·github·api
高频因子挖掘机4 小时前
历史行情返回顺序变了,为什么按行号计算指标很危险?
后端·github·api
团子哒哒6 小时前
数组、切片和Map
后端
专注仿真6 小时前
ThinkPHP6 API接口开发实例:从零搭建RESTful风格接口
后端·php·restful
开心猴爷6 小时前
应对iOS审核4.3:可以使用 IpaGuard 来给属性名混淆的技术细节与平衡之道
后端·ios
1m555555556 小时前
RAG 工程实战(五):正确知识已经进入 Prompt,为什么大模型还是会答错?
后端·面试
易小尊6 小时前
我的模型在 65% 以上时准得可怕,在 50% 时像在掷硬币
后端