上篇博客介绍到服务中心的搭建以及用服务中心的好处,既然用到服务中心,就必要要将每一项服务注册到服务中心,注册服务一下简称“server工程”代码及逻辑如下:
- 在server工程的pom.xml追加cloud的jar包定义:
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<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>
- 在server工程的application.properties追加定义
#eureka
spring.application.name=demo_server #将要注册服务中西的名字
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/#服务中西你的地址
- 在server工程的原有主入口类,添加@EnableDiscoveryClient
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;
//扫描其他controller所在的路径
@ComponentScan(basePackages = {"com.example.*"})
@SpringBootApplication
//扫描mapper映射
@MapperScan("com.example.*")
/*开启事务*/
@EnableTransactionManagement
@EnableDiscoveryClient
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
}
- 运行主入口类测试,打开服务中心地址,出现如下页面代表成功
再Instances currently registered with Eureka出现注册的服务名即可
注意事项:
一定要先启动服务注册中心,再启动需要注册的服务