前言
Springboot2.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是我們注冊的地址,這里只開啟一個節點,即向自己注冊自己
啟動即可。