0 课程地址
https://coding.imooc.com/lesson/380.html#mid=28548
1 主要内容
1.1 idea搭建父模块
a 搭建父模块
file--》new--》project--》Maven--》Next--》
groupid 输入:com.imooc.coupon ArtifactId 输入:imooc-coupon Version 输入:1.0-SNAPSHOT
next--》
projectname改为 imooc-coupon
-->Finish即可。
b 父模块imooc-coupon.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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.imooc.coupon</groupId> <artifactId>imooc-coupon</artifactId> <version>1.0-SNAPSHOT</version> <!-- 子模块,新建model后会自动生成 --> <modules> <module>coupon-eureka</module> </modules> <!-- 项目的打包类型, 即项目的发布形式, 默认为 jar. 对于聚合项目的父模块来说, 必须指定为 pom --> <packaging>pom</packaging> <!-- springCloud 也是基于Springboot开发,引入springboot 依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> </parent> <!-- SpringCloud版本 --> <properties> <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> </properties> <dependencies> <!-- lombok 工具通过在代码编译时期动态的将注解替换为具体的代码, IDEA 需要添加 lombok 插件 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency> <!-- 测试用例依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!-- 标识springcloud版本 --> <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> </dependencies> </dependencyManagement> <!-- 配置远程仓库 --> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project>
1.2 idea搭建子模块
a 搭建子模块
右键imooc-coupon项目--》new --》module--》默认maven--》next--》
artifactid选为:coupon-eureka
next--》
modelname修改为coupon-eureka
--》finish
b 子模块coupon-eureka.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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>imooc-coupon</artifactId> <groupId>com.imooc.coupon</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <!-- goupid和versionid 默认继承自parent标签中,versionid也可以显示声明,以声明为准确的 --> <artifactId>coupon-eureka</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <!-- 需要依赖 eureka server: 提供服务发现与服务注册 --> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> <!-- SpringBoot的Maven插件, 能够以Maven的方式为应用提供SpringBoot的支持,可以将 SpringBoot应用打包为可执行的jar或war文件, 然后以通常的方式运行SpringBoot应用 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
C 子模块applicatoin.yml配置文件设置
#应用名称
spring:
application:
name: coupon-eureka
#端口号
server:
port: 8000
#主机名
eureka:
instance:
hostname: localhost
#单节点Eureka
client:
#标识是否从Eureka中获取注册信息,默认为true,如果为单节点eureka Server
#不需要同步其他节点的数据,设置为false
fetch-registry: false
#是否将自己注册到Eureka上,由于当前应用是单节点eurekaServer
#需要设置为false
register-with-eureka: false
#设置eureka server地址,查询服务和注册服务都需要依赖这个地址
service-url:
defalutZone: http://${eureka.instance.hostname}:${server.port}/eureka/
D 编写测试用例
package com.imooc.coupon; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /** * EurekaApplication * * @date 2021/1/7 * @author 魏豆豆 */ //SpringBoot应用,需要加上SpringBootApplication这个注解 @SpringBootApplication //SpringCloud为其提供,加入这个注解为初始化Eureka运行环境 @EnableEurekaServer public class EurekaApplication { public static void main(String [] args){ SpringApplication.run(EurekaApplication.class,args); } }
E 启动springboot程序,
查看http://localhost:8000/
关于此处介绍见下节
1.3 遇到问题
a 测试用例引入不到@SpringBootApplication 注解
解决方案:pom格式问题。经过排查,是pom.xml引入spirngcloud版本的时候多了个'}'
b yml没有自动提示
解决方案:参见开发软件--》idea文章。没有引入Spring Assistance插件
2 其他内容
2.1 yml中自己新学到的内容
fetch-registry: (自己理解:接收server内容)
register-with-eureka: (自己理解:把自己注册到eureka)
诸葛