前言
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <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包依赖换了名字。
1
| spring-cloud-starter-netflix-eureka-server
|
接下来,只要一个启动类就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @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
1 2 3 4
| 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是我们注册的地址,这里只开启一个节点,即向自己注册自己
启动即可。