SpringCloud2.0推出有一段时间了,是要学习1.5+还是从2.0开始?犹豫的原因是资料不全,目前现有的资料大部分是1.0的。但作为学习者,肯定要学习最新的。不如,先试试。
搭建Eureka注册中心关于Eureka的介绍,前文《SpringCloud入门1-服务注册与发现(Eureka)》已经学习过了。这次主要针对2.0重新刷新一下。
Maven or Gradle看官方文档,可以看出spring是特别希望大家都转gradle的,我也用了一段时间,最后发现国内这个真不流行。这次转为maven构建。
项目搭建新建一个springboot项目,添加eureka server的依赖。
项目地址:
https://github.com/Ryan-Miao/spring-cloud-demo/tree/master/eureka-server
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.RC2</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <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-security</artifactId> </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>对比1.0可以发现,jar包依赖换了名字。
spring-cloud-starter-netflix-eureka-server接下来,只要一个启动类就可以了。
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } @Configuration public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().anyRequest().permitAll()// .and().csrf().disable(); } } }@EnableEurekaServer表示启用Eureka
关于SpringSecurity的问题,2.0以后只要classpath加载了spring security就会默认进行安全拦截,这里允许所有,先忽略安全问题。
然后是配置文件application.properties
spring.application.name=spring-cloud-eureka-server server.port=8761 eureka.instance.hostname=localhost eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/port 8761是Eureka客户端默认的端口,选择我们就选择8761
我们需要name来显示项目名称
defaultZone是我们注册的地址,这里只开启一个节点,即向自己注册自己
启动即可。