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上

存入的数据是没有问题

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

至此,就成功了,是不是还挺容易的
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论