mmmm123 发表于 2025-2-12 11:26:21

nacos(三): 创建第一个生产者producer(单体)

因为springcloud各个版本之间适配非常神经质,所以事件明确,在本实验环节中:使用的是JDK8,选择的springboot版本是2.7.6。
可以借助阿里云的脚手架(点此进入)帮我们创建第一个springcloudAlibaba项目:

 如图所示,我们需要先添加"Nacos Service Discovery"和"Spring Web"组件。(注意:不要加太后,后面需要用到组件我们在pom里慢慢添加,否则生成的pom里会有各种错误)。
 
在生成的项目中,pom.xml如下所示(注意版本的适配):
<?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>    <groupId>com.nacos</groupId>    <artifactId>springboot</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>springboot</name>    <description>Demo project for Spring Boot</description>    <properties>      <java.version>1.8</java.version>      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>      <spring-boot.version>2.7.6</spring-boot.version>      <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>    </properties>    <dependencies>      <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-test</artifactId>            <scope>test</scope>      </dependency>    </dependencies>    <dependencyManagement>      <dependencies>            <dependency>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-dependencies</artifactId>                <version>${spring-boot.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>    <build>      <plugins>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <version>3.8.1</version>                <configuration>                  <source>1.8</source>                  <target>1.8</target>                  <encoding>UTF-8</encoding>                </configuration>            </plugin>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <version>${spring-boot.version}</version>                <configuration>                  <mainClass>com.nacos.springboot.SpringbootApplication</mainClass>                  <skip>false</skip>                </configuration>                <executions>                  <execution>                        <id>repackage</id>                        <goals>                            <goal>repackage</goal>                        </goals>                  </execution>                </executions>            </plugin>      </plugins>    </build></project>
 
在application.yml中添加如下代码:
server:port: 8080spring:cloud:    nacos:      discovery:      server-addr: 127.0.0.1:8848      username: nacos      password: nacos      config:      server-addr: 127.0.0.1:8848      file-extension: properties      username: nacos      password: nacosapplication:    name: product1
其中username和password是连接nacos的用户名和密码。因为前面对nacos开启了鉴权并设置了密码,如果这里没有指定连接密码,就会抛出UnknowException。
 
关于启动代码:
@SpringBootApplication@EnableDiscoveryClientpublic class SpringbootApplication {    public static void main(String[] args) {      SpringApplication.run(SpringbootApplication.class, args);    }}
@EnableDiscoveryClient注解可以让项目启动的时候,自动注册进nacos中心。启动之后,可以在nacos后台的服务列表中看到注册进来的服务,如下所示(服务名即为项目的application-name):

 
本节内容到这里就结束了,下一步即将创建第一个单体消费者consumer。对于微服务的文章会陆续推出,为的就是让新手小伙伴可以从springboot平滑过度到微服务架构,希望对各位有所帮助 : )
页: [1]
查看完整版本: nacos(三): 创建第一个生产者producer(单体)