当前位置: 代码网 > it编程>编程语言>Java > SpringBoot3.x整合Nacos和Redis全过程

SpringBoot3.x整合Nacos和Redis全过程

2025年12月30日 Java 我要评论
1、安装java17此步骤省略安装完成后,查看2、通过 idea 初始化向导创建springboot项目然后点击create即可创建成功3、配置pom文件<?xml version="1.0"

1、安装java17

此步骤省略

安装完成后,查看

2、通过 idea 初始化向导创建springboot项目

然后点击create即可创建成功

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>

        <!--服务发现-->
        <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>

关于选择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 #默认为空
      timeout: 3000ms
      lettuce:
        pool:
          max-active: 20  # 最大连接数,负值表示没有限制,默认8
          max-wait: -1    # 最大阻塞等待时间,负值表示没限制,默认-1
          max-idle: 8     # 最大空闲连接,默认8
          min-idle: 0     # 最小空闲连接,默认0

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.56.10:8848

5、配置主启动类

/**
 * classname: springbootquartzapplication
 * package: com.xgxz.boot
 * description:
 *
 * @author: 习惯向左
 * @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("--------------启动完成----------------");
    }
}

6、配置redisconfig

/**
 * classname: redisconfig
 * package: com.xgxz.boot.config
 * description:
 *
 * @author: 习惯向左
 * @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、另外本人习惯在使用日期类时用 localdatetime

还需要额外配置一下

/**
 * classname: user
 * package: com.xgxz.boot.entity
 * description:
 *
 * @author: 习惯向左
 * @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")       //此注解用来接收字符串类型的参数封装成localdatetime类型
    @jsonformat(pattern = "yyyy-mm-dd hh:mm:ss", timezone = "gmt+8", shape = jsonformat.shape.string) //此注解将date类型数据转成字符串响应出去
    @jsondeserialize(using = localdatetimedeserializer.class)		// 反序列化
    @jsonserialize(using = localdatetimeserializer.class)		    // 序列化
    private localdatetime sendtime;
}

8、nacos需要额外多暴露两个端口号

8848就不多说了,还需要暴露9848和9849,下面使用docker来安装nacos

8.1、先查询一下nacos镜像

docker search nacos

8.2、拉取镜像

docker pull nacos/nacos-server

8.3、创建文件目录,为将容器内的文件挂载到外面来

mkdir -p /mydata/nacos/init.d /mydata/nacos/logs

8.4、执行启动命令

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

这里采用单机试用模式安装,也可参考nacos官方文档 https://nacos.io/zh-cn/docs/deployment.html来安装

8.5、查看是否运行成功

docker ps

访问浏览器 ip:8848/nacos

默认用户名、密码都为 nacos, 输入即可登录成功

一切就绪,下面我们启动服务来进行测试

服务启动正常

也成功注册到nacos上

存入的数据是没有问题

查出来的数据也是我们想要的

至此,就成功了,是不是还挺容易的 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com