SpringBoot3.x整合Nacos和Redis全過程
1、安裝java17
此步驟省略
安裝完成后,查看

2、通過 idea 初始化向?qū)?chuàng)建springboot項(xiàng)目


然后點(diǎn)擊Create即可創(chuàng)建成功
3、配置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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xgxz.boot</groupId>
<artifactId>spring-boot-3-nacos</artifactId>
<version>1.0</version>
<name>spring-boot-3-nacos</name>
<description>spring-boot-3-nacos</description>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<java.version>17</java.version>
<spring.cloud.version>2022.0.3</spring.cloud.version>
<spring.cloud.alibaba.version>2022.0.0.0-RC2</spring.cloud.alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- 使用bootstrap.yml必須依賴此類 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--服務(wù)發(fā)現(xiàn)-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.13.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
關(guān)于選擇nacos版本,參考

地址:https://github.com/alibaba/spring-cloud-alibaba/blob/2022.x/README-zh.md
4、配置yml文件
server:
port: 8868
spring:
application:
name: spring-boot-nacox
data:
redis:
host: 192.168.56.10
port: 6379
database: 2
# password: 123456 #默認(rèn)為空
timeout: 3000ms
lettuce:
pool:
max-active: 20 # 最大連接數(shù),負(fù)值表示沒有限制,默認(rèn)8
max-wait: -1 # 最大阻塞等待時(shí)間,負(fù)值表示沒限制,默認(rèn)-1
max-idle: 8 # 最大空閑連接,默認(rèn)8
min-idle: 0 # 最小空閑連接,默認(rèn)0
cloud:
nacos:
discovery:
server-addr: 192.168.56.10:8848
5、配置主啟動(dòng)類
/**
* ClassName: SpringBootQuartzApplication
* Package: com.xgxz.boot
* Description:
*
* @Author: 習(xí)慣向左
* @Create: 2023/7/6 - 16:59
* @Version: v1.0
*/
@Slf4j
@EnableDiscoveryClient
@SpringBootApplication
public class SpringBootQuartzApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootQuartzApplication.class, args);
log.info("--------------啟動(dòng)完成----------------");
}
}
6、配置RedisConfig
/**
* ClassName: RedisConfig
* Package: com.xgxz.boot.config
* Description:
*
* @Author: 習(xí)慣向左
* @Create: 2023/7/6 - 17:10
* @Version: v1.0
*/
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
}
7、另外本人習(xí)慣在使用日期類時(shí)用 LocalDateTime
還需要額外配置一下
/**
* ClassName: User
* Package: com.xgxz.boot.entity
* Description:
*
* @Author: 習(xí)慣向左
* @Create: 2023/7/6 - 17:40
* @Version: v1.0
*/
@Data
public class User {
private Long id;
private String name;
private int age;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") //此注解用來接收字符串類型的參數(shù)封裝成LocalDateTime類型
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8", shape = JsonFormat.Shape.STRING) //此注解將date類型數(shù)據(jù)轉(zhuǎn)成字符串響應(yīng)出去
@JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化
private LocalDateTime sendTime;
}
8、nacos需要額外多暴露兩個(gè)端口號
8848就不多說了,還需要暴露9848和9849,下面使用docker來安裝nacos
8.1、先查詢一下nacos鏡像
docker search nacos

8.2、拉取鏡像
docker pull nacos/nacos-server
8.3、創(chuàng)建文件目錄,為將容器內(nèi)的文件掛載到外面來
mkdir -p /mydata/nacos/init.d /mydata/nacos/logs
8.4、執(zhí)行啟動(dòng)命令
docker run -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \ -e MODE=standalone \ -e PREFER_HOST_MODE=hostname \ -e JVM_XMS=256m -e JVM_XMX=256m \ -v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \ -v /mydata/nacos/logs:/home/nacos/logs \ --restart always \ --name nacos \ nacos/nacos-server
這里采用單機(jī)試用模式安裝,也可參考Nacos官方文檔 https://nacos.io/zh-cn/docs/deployment.html來安裝
8.5、查看是否運(yùn)行成功
docker ps

訪問瀏覽器 ip:8848/nacos

默認(rèn)用戶名、密碼都為 nacos, 輸入即可登錄成功

一切就緒,下面我們啟動(dòng)服務(wù)來進(jìn)行測試
服務(wù)啟動(dòng)正常

也成功注冊到nacos上

存入的數(shù)據(jù)是沒有問題

查出來的數(shù)據(jù)也是我們想要的

至此,就成功了,是不是還挺容易的
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java判斷時(shí)間間隔是否超限的兩種實(shí)現(xiàn)方法詳解
本文探討了業(yè)務(wù)系統(tǒng)中判斷時(shí)間間隔是否超限的兩種實(shí)現(xiàn)方法,主要針對常見的30分鐘支付、72小時(shí)檢測等需求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-01-01
Java Web項(xiàng)目中使用Socket通信多線程、長連接的方法
很多時(shí)候在javaweb項(xiàng)目中我們需要用到Socket通信來實(shí)現(xiàn)功能,在web中使用Socket我們需要建立一個(gè)監(jiān)聽程序,在程序啟動(dòng)時(shí),啟動(dòng)socket監(jiān)聽。接下來通過本文給大家介紹Java Web項(xiàng)目中使用Socket通信多線程、長連接的方法,感興趣的朋友一起學(xué)習(xí)2016-04-04
結(jié)合mybatis-plus實(shí)現(xiàn)簡單不需要寫sql的多表查詢
這篇文章主要給大家介紹了關(guān)于結(jié)合mybatis-plus實(shí)現(xiàn)簡單不需要寫sql的多表查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mybatis-plus具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
深入研究spring boot集成kafka之spring-kafka底層原理
這篇文章主要深入研究了spring boot集成kafka如何實(shí)現(xiàn)spring-kafka的底層原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02

