springcloud学习01-用intellij idea搭建Eureka服务
0.配置intellij idea工具:https://www.cnblogs.com/wang-liang-blogs/p/12060702.html
1.使用maven构建工具构建主工程项目。
1.1.file-->new-->project-->选择maven,sdk选择本地配置的jdk
1.2.next-->输入GroupId和ArtifactId
1.3.next-->选择project location-->finish
1.4.等待maven将依赖包下载完成
2.构建eureka模块
2.1.选中总的springcloud-->右键new-->model-->选择Spring Assistant-->SDK选择本地配置的jdk
2.2.next-->配置GroupId/Artifact Id/Project name/Package name
GroupId要与主工程一样,是主工程的一个模块。
2.3.next-->选择Spring Cloud Discovery-->选中Eureka Server
2.4.next-->在启动入口加注解上注解@EnableEurekaServer-->增加resources/application.yml的配置
在项目启动类上使用@EnableEurekaServer,可以将项目作为SpringCloud中的注册中心
2.4.1.程序入口文件:
package com.demo.springcloudeureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class SpringcloudEurekaApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudEurekaApplication.class, args); } }
2.4.2.resources/application.yml配置文件,如果是application.properties,可以修改成application.yml,也可以不修改
server:
port: 8762
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
2.5.右键选择 Run 'SpringcloudEurekaApplication.main()'启动成功。
启动成功后可以看到如下信息,端口以及启动耗时等
2.6.浏览器访问:localhost:8762,可以看到相关的eureka的相关信息,注意标红的部分是注册到eureka上的服务
3.删除主工程的src以及.iml文件。
4.扩展/尝试
我这样搭建之后感觉pom文件不是我预想的那种结构,感觉这样生成的的pom.xml有点问题,所以我做如下修改。
将子模块eureka模块的parent/properties/dependencies/dependencyManagement移到主模块springcloud中的pom.xml文件在,并且在主模块的pom文件中加入modules,子模块eureka模块添加parent关联主模块springcloud.
主模块springcloud模块的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>springcloud</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <modules> <module>springcloud-eureka</module> </modules> <properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <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> </project>
子模块eureka模块的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> <parent> <groupId>com.demo</groupId> <artifactId>springcloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>springcloud-eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springcloud-eureka</name> <description>Demo project for Spring Boot</description> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
这样给我的感觉是不会重复的取下载获取判断重复的架包