Eureka发布以后,一个空盒子肯定不行,体现不出价值来,任何系统都需要有用户权限管理,我们先简单创建这样的一个服务注册到Eureka中,将来其他系统如果需要类似服务,只需要从Eureka中找寻该服务即可。
- 新建一个module,过程跟创建eureka类似,需要注意的是在选择dependencies的时候,选择Eureka Discovery。
- pom文件内容
<?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.liusx</groupId>
<artifactId>auth</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>auth</name>
<description>Auth project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<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>Edgware.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 修改配置文件application.yml,设置端口为8081,系统访问前缀为/auth,尤其要注意register-with-eureka=true,这个表示将该服务注册到Eureka Server中
spring:
application:
name: liusx-servers-auth
server:
context-path: /auth
port: 8081
eureka:
instance:
hostname: 127.0.0.1
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://user:123456@${eureka.instance.hostname}:8761/eureka/ #注册 中心已经开启认证
- 启动类,看网上有的例子中注明,这里要加注解@EnableEurekaClient,但这里没有加,暂时还没发现有影响功能使用的地方,等找时间详细研究下这个注解的意思,有了解的朋友也可以留言互相交流下。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class AuthApplication {
public static void main(String[] args) {
SpringApplication.run(AuthApplication.class, args);
}
}
- 工程创建好以后,接下来我们实现一个简单的登录接口,通过地址 http://localhost:8081/auth/login 可以访问该接口,接口具体内容先不做,先固定返回一个字符串,证明该接口可用。
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AccountController {
@PostMapping("/login")
public String login(String userName, String password) {
return "登录成功8081,用户名 = " + userName + ", 密码 = " + password;
}
}
- 截止到目前,服务注册已经做完了,启动工程,在启动之前,上一节中的eureka服务也必须要启动,否则启动会报错,启动成功后,访问eureka服务http://localhost:8761/ ,可以看到我们的服务已经注册进来了。
- 服务已经注册好了,下一节介绍下怎么来访问这个服务,当然访问这个服务的时候,是通过eureka中来发现,至于我们刚做的LIUSX-SERVERS-AUTH这个服务,我们需要关心的是其对外提供的服务接口是什么,至于部署的端口、url地址,不是我们关心的