第二篇

This commit is contained in:
fxb 2018-12-17 21:46:59 +08:00
parent b870ff1ae9
commit d9d7bae339
23 changed files with 747 additions and 747 deletions

View File

@ -1,65 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?> <?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" <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"> 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> <modelVersion>4.0.0</modelVersion>
<groupId>com.fxb</groupId> <groupId>com.fxb</groupId>
<artifactId>demo</artifactId> <artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>confsvr</name> <name>confsvr</name>
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.4.RELEASE</version> <version>1.4.4.RELEASE</version>
</parent> </parent>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId> <artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR5</version> <version>Camden.SR5</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Camden.SR5</spring-cloud.version> <spring-cloud.version>Camden.SR5</spring-cloud.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId> <artifactId>spring-cloud-config-server</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId> <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@ -1,16 +1,16 @@
package com.fxb.demo; package com.fxb.demo;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer; import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication @SpringBootApplication
@EnableConfigServer @EnableConfigServer
@EnableDiscoveryClient @EnableDiscoveryClient
public class ConfsvrApplication { public class ConfsvrApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ConfsvrApplication.class, args); SpringApplication.run(ConfsvrApplication.class, args);
} }
} }

View File

@ -1,29 +1,29 @@
server: server:
port: 8888 port: 8888
eureka: eureka:
instance: instance:
#注册服务的IP而不是服务器名 #注册服务的IP而不是服务器名
prefer-ip-address: true prefer-ip-address: true
client: client:
#向eureka注册服务 #向eureka注册服务
register-with-eureka: true register-with-eureka: true
#拉取注册表的本地副本 #拉取注册表的本地副本
fetch-registry: true fetch-registry: true
service-url: service-url:
#Eureka服务的位置(如果有多个注册中心,使用,分隔) #Eureka服务的位置(如果有多个注册中心,使用,分隔)
defaultZone: http://localhost:8761/eureka/ defaultZone: http://localhost:8761/eureka/
spring: spring:
profiles: profiles:
# 使用文件系统来存储配置信息需要设置为native # 使用文件系统来存储配置信息需要设置为native
active: native active: native
application: application:
name: confsvr name: confsvr
cloud: cloud:
config: config:
server: server:
native: native:
# 使用文件来存放配置文件,为每个应用程序提供用逗号分隔的文件夹列表 # 使用文件来存放配置文件,为每个应用程序提供用逗号分隔的文件夹列表
searchLocations: file:///D:/configFolder/licensingservice,file:///D:/configFolder/organizationservice searchLocations: file:///D:/configFolder/licensingservice,file:///D:/configFolder/organizationservice

View File

@ -1,16 +1,16 @@
package com.fxb.demo; package com.fxb.demo;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class ConfsvrApplicationTests { public class ConfsvrApplicationTests {
@Test @Test
public void contextLoads() { public void contextLoads() {
} }
} }

View File

@ -1,72 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?> <?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" <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"> 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> <modelVersion>4.0.0</modelVersion>
<groupId>com.fxb</groupId> <groupId>com.fxb</groupId>
<artifactId>eurekasvr</artifactId> <artifactId>eurekasvr</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>eurekasvr</name> <name>eurekasvr</name>
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.4.RELEASE</version> <version>1.4.4.RELEASE</version>
</parent> </parent>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId> <artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR5</version> <version>Camden.SR5</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Camden.SR5</spring-cloud.version> <spring-cloud.version>Camden.SR5</spring-cloud.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId> <artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<repositories> <repositories>
<repository> <repository>
<id>spring-milestones</id> <id>spring-milestones</id>
<name>Spring Milestones</name> <name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url> <url>https://repo.spring.io/milestone</url>
<snapshots> <snapshots>
<enabled>false</enabled> <enabled>false</enabled>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>
</project> </project>

View File

@ -1,14 +1,14 @@
package com.fxb.eurekasvr; package com.fxb.eurekasvr;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication @SpringBootApplication
@EnableEurekaServer @EnableEurekaServer
public class EurekasvrApplication { public class EurekasvrApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(EurekasvrApplication.class, args); SpringApplication.run(EurekasvrApplication.class, args);
} }
} }

View File

@ -1,12 +1,12 @@
server: server:
port: 8761 port: 8761
eureka: eureka:
client: client:
#不注册自己 #不注册自己
register-with-eureka: false register-with-eureka: false
#不在本地缓存注册表信息 #不在本地缓存注册表信息
fetch-registry: false fetch-registry: false
server: server:
#接受请求前的等待实际,开发模式下不要开启 #接受请求前的等待实际,开发模式下不要开启
#wait-time-in-ms-when-sync-empty: 5 #wait-time-in-ms-when-sync-empty: 5

View File

@ -1,16 +1,16 @@
package com.fxb.eurekasvr; package com.fxb.eurekasvr;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class EurekasvrApplicationTests { public class EurekasvrApplicationTests {
@Test @Test
public void contextLoads() { public void contextLoads() {
} }
} }

View File

@ -1,69 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?> <?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" <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"> 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> <modelVersion>4.0.0</modelVersion>
<groupId>com.fxb</groupId> <groupId>com.fxb</groupId>
<artifactId>licensingservice</artifactId> <artifactId>licensingservice</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>licensingservice</name> <name>licensingservice</name>
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.4.RELEASE</version> <version>1.4.4.RELEASE</version>
</parent> </parent>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId> <artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR5</version> <version>Camden.SR5</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Camden.SR5</spring-cloud.version> <spring-cloud.version>Camden.SR5</spring-cloud.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId> <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId> <artifactId>spring-cloud-config-client</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId> <artifactId>spring-cloud-starter-feign</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@ -1,31 +1,31 @@
package com.fxb.licensingservice.Entity; package com.fxb.licensingservice.Entity;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 类功能简述 * 类功能简述
* 类功能详述 * 类功能详述
* *
* @author fanxb * @author fanxb
* @date 2018/11/22 19:52 * @date 2018/11/22 19:52
*/ */
public class Licensing implements Serializable { public class Licensing implements Serializable {
private Organization organization; private Organization organization;
private boolean isValid; private boolean isValid;
public Organization getOrganization() { public Organization getOrganization() {
return organization; return organization;
} }
public void setOrganization(Organization organization) { public void setOrganization(Organization organization) {
this.organization = organization; this.organization = organization;
} }
public boolean isValid() { public boolean isValid() {
return isValid; return isValid;
} }
public void setValid(boolean valid) { public void setValid(boolean valid) {
isValid = valid; isValid = valid;
} }
} }

View File

@ -1,40 +1,40 @@
package com.fxb.licensingservice.Entity; package com.fxb.licensingservice.Entity;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 类功能简述 * 类功能简述
* 类功能详述 * 类功能详述
* *
* @author fanxb * @author fanxb
* @date 2018/11/22 19:30 * @date 2018/11/22 19:30
*/ */
public class Organization implements Serializable { public class Organization implements Serializable {
private String id; private String id;
private String name; private String name;
public Organization() { public Organization() {
} }
public Organization(String id, String name) { public Organization(String id, String name) {
this.id = id; this.id = id;
this.name = name; this.name = name;
} }
public String getId() { public String getId() {
return id; return id;
} }
public void setId(String id) { public void setId(String id) {
this.id = id; this.id = id;
} }
public String getName() { public String getName() {
return name; return name;
} }
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
} }

View File

@ -1,28 +1,28 @@
package com.fxb.licensingservice; package com.fxb.licensingservice;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient //使用不带Ribbon功能的Spring RestTemplate,其他情况下可删除 @EnableDiscoveryClient //使用不带Ribbon功能的Spring RestTemplate,其他情况下可删除
@EnableFeignClients //使用Feign客户端进行服务调用其他情况下可删除 @EnableFeignClients //使用Feign客户端进行服务调用其他情况下可删除
public class LicensingserviceApplication { public class LicensingserviceApplication {
/** /**
* 使用带有Ribbon 功能的Spring RestTemplate其他情况可删除 * 使用带有Ribbon 功能的Spring RestTemplate其他情况可删除
*/ */
@LoadBalanced @LoadBalanced
@Bean @Bean
public RestTemplate getRestTemplate(){ public RestTemplate getRestTemplate(){
return new RestTemplate(); return new RestTemplate();
} }
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(LicensingserviceApplication.class, args); SpringApplication.run(LicensingserviceApplication.class, args);
} }
} }

View File

@ -1,27 +1,27 @@
package com.fxb.licensingservice.client; package com.fxb.licensingservice.client;
import com.fxb.licensingservice.Entity.Organization; import com.fxb.licensingservice.Entity.Organization;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
/** /**
* 类功能简述 * 类功能简述
* 类功能详述 * 类功能详述
* *
* @author fanxb * @author fanxb
* @date 2018/11/23 17:24 * @date 2018/11/23 17:24
*/ */
@FeignClient("organizationservice")//使用FeignClient注解指定目标服务 @FeignClient("organizationservice")//使用FeignClient注解指定目标服务
public interface OrganizationFeignClient { public interface OrganizationFeignClient {
/** /**
* 获取组织信息 * 获取组织信息
* *
* @param orgId 组织id * @param orgId 组织id
* @return Organization * @return Organization
*/ */
@RequestMapping(method = RequestMethod.GET, value = "/organization/{orgId}", consumes = "application/json") @RequestMapping(method = RequestMethod.GET, value = "/organization/{orgId}", consumes = "application/json")
Organization getOrganization(@PathVariable("orgId") String orgId); Organization getOrganization(@PathVariable("orgId") String orgId);
} }

View File

@ -1,56 +1,56 @@
package com.fxb.licensingservice.controller; package com.fxb.licensingservice.controller;
import com.fxb.licensingservice.Entity.Licensing; import com.fxb.licensingservice.Entity.Licensing;
import com.fxb.licensingservice.client.OrganizationFeignClient; import com.fxb.licensingservice.client.OrganizationFeignClient;
import com.fxb.licensingservice.service.OrganizationByRibbonService; import com.fxb.licensingservice.service.OrganizationByRibbonService;
import com.fxb.licensingservice.service.OrganizationService; import com.fxb.licensingservice.service.OrganizationService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
/** /**
* 类功能简述 * 类功能简述
* 类功能详述 * 类功能详述
* *
* @author fanxb * @author fanxb
* @date 2018/11/22 19:51 * @date 2018/11/22 19:51
*/ */
@RestController @RestController
public class LicensingController { public class LicensingController {
private OrganizationService organizationService; private OrganizationService organizationService;
private OrganizationByRibbonService ribbonService; private OrganizationByRibbonService ribbonService;
private OrganizationFeignClient organizationFeignClient; private OrganizationFeignClient organizationFeignClient;
@Autowired @Autowired
public LicensingController(OrganizationService organizationService, OrganizationByRibbonService ribbonService, OrganizationFeignClient feignClient) { public LicensingController(OrganizationService organizationService, OrganizationByRibbonService ribbonService, OrganizationFeignClient feignClient) {
this.organizationService = organizationService; this.organizationService = organizationService;
this.ribbonService = ribbonService; this.ribbonService = ribbonService;
this.organizationFeignClient = feignClient; this.organizationFeignClient = feignClient;
} }
@GetMapping("/licensing/{orgId}") @GetMapping("/licensing/{orgId}")
public Licensing getLicensing(@PathVariable("orgId") String orgId) { public Licensing getLicensing(@PathVariable("orgId") String orgId) {
Licensing licensing = new Licensing(); Licensing licensing = new Licensing();
licensing.setValid(false); licensing.setValid(false);
licensing.setOrganization(organizationService.getOrganization(orgId)); licensing.setOrganization(organizationService.getOrganization(orgId));
return licensing; return licensing;
} }
@GetMapping("/licensingByRibbon/{orgId}") @GetMapping("/licensingByRibbon/{orgId}")
public Licensing getLicensingByRibbon(@PathVariable("orgId") String orgId) { public Licensing getLicensingByRibbon(@PathVariable("orgId") String orgId) {
Licensing licensing = new Licensing(); Licensing licensing = new Licensing();
licensing.setValid(false); licensing.setValid(false);
licensing.setOrganization(ribbonService.getOrganizationWithRibbon(orgId)); licensing.setOrganization(ribbonService.getOrganizationWithRibbon(orgId));
return licensing; return licensing;
} }
@GetMapping("/licensingByFeign/{orgId}") @GetMapping("/licensingByFeign/{orgId}")
public Licensing getLicensingByFeign(@PathVariable("orgId") String orgId) { public Licensing getLicensingByFeign(@PathVariable("orgId") String orgId) {
Licensing licensing = new Licensing(); Licensing licensing = new Licensing();
licensing.setValid(false); licensing.setValid(false);
licensing.setOrganization(organizationFeignClient.getOrganization(orgId)); licensing.setOrganization(organizationFeignClient.getOrganization(orgId));
return licensing; return licensing;
} }
} }

View File

@ -1,32 +1,32 @@
package com.fxb.licensingservice.service; package com.fxb.licensingservice.service;
import com.fxb.licensingservice.Entity.Organization; import com.fxb.licensingservice.Entity.Organization;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
/** /**
* 类功能简述 * 类功能简述
* 类功能详述 * 类功能详述
* *
* @author fanxb * @author fanxb
* @date 2018/11/23 15:36 * @date 2018/11/23 15:36
*/ */
@Component @Component
public class OrganizationByRibbonService { public class OrganizationByRibbonService {
private RestTemplate restTemplate; private RestTemplate restTemplate;
@Autowired @Autowired
public OrganizationByRibbonService(RestTemplate restTemplate) { public OrganizationByRibbonService(RestTemplate restTemplate) {
this.restTemplate = restTemplate; this.restTemplate = restTemplate;
} }
public Organization getOrganizationWithRibbon(String id) { public Organization getOrganizationWithRibbon(String id) {
ResponseEntity<Organization> responseEntity = restTemplate.exchange("http://organizationservice/organization/{id}", ResponseEntity<Organization> responseEntity = restTemplate.exchange("http://organizationservice/organization/{id}",
HttpMethod.GET, null, Organization.class, id); HttpMethod.GET, null, Organization.class, id);
return responseEntity.getBody(); return responseEntity.getBody();
} }
} }

View File

@ -1,50 +1,50 @@
package com.fxb.licensingservice.service; package com.fxb.licensingservice.service;
import com.fxb.licensingservice.Entity.Organization; import com.fxb.licensingservice.Entity.Organization;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.util.List; import java.util.List;
/** /**
* 类功能简述 * 类功能简述
* 类功能详述 * 类功能详述
* *
* @author fanxb * @author fanxb
* @date 2018/11/22 19:29 * @date 2018/11/22 19:29
*/ */
@Service @Service
public class OrganizationService { public class OrganizationService {
private static final String SERVICE_NAME = "organizationservice"; private static final String SERVICE_NAME = "organizationservice";
private DiscoveryClient discoveryClient; private DiscoveryClient discoveryClient;
@Autowired @Autowired
public OrganizationService(DiscoveryClient discoveryClient) { public OrganizationService(DiscoveryClient discoveryClient) {
this.discoveryClient = discoveryClient; this.discoveryClient = discoveryClient;
} }
/** /**
* 使用Spring DiscoveryClient查询 * 使用Spring DiscoveryClient查询
* *
* @param id * @param id
* @return * @return
*/ */
public Organization getOrganization(String id) { public Organization getOrganization(String id) {
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
List<ServiceInstance> instances = discoveryClient.getInstances(SERVICE_NAME); List<ServiceInstance> instances = discoveryClient.getInstances(SERVICE_NAME);
if (instances.size() == 0) { if (instances.size() == 0) {
throw new RuntimeException("无可用的服务"); throw new RuntimeException("无可用的服务");
} }
String serviceUri = String.format("%s/organization/%s", instances.get(0).getUri().toString(), id); String serviceUri = String.format("%s/organization/%s", instances.get(0).getUri().toString(), id);
ResponseEntity<Organization> responseEntity = restTemplate.exchange(serviceUri, HttpMethod.GET ResponseEntity<Organization> responseEntity = restTemplate.exchange(serviceUri, HttpMethod.GET
, null, Organization.class, id); , null, Organization.class, id);
return responseEntity.getBody(); return responseEntity.getBody();
} }
} }

View File

@ -1,19 +1,19 @@
spring: spring:
application: application:
#指定名称以便spring cloud config客户端知道查找哪个配置 #指定名称以便spring cloud config客户端知道查找哪个配置
name: licensingservice name: licensingservice
profiles: profiles:
#指定环境 #指定环境
active: dev active: dev
cloud: cloud:
config: config:
enabled: true enabled: true
eureka: eureka:
instance: instance:
prefer-ip-address: true prefer-ip-address: true
client: client:
register-with-eureka: true register-with-eureka: true
fetch-registry: true fetch-registry: true
service-url: service-url:
defaultZone: http://localhost:8761/eureka/ defaultZone: http://localhost:8761/eureka/

View File

@ -1,16 +1,16 @@
package com.fxb.licensingservice; package com.fxb.licensingservice;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class LicensingserviceApplicationTests { public class LicensingserviceApplicationTests {
@Test @Test
public void contextLoads() { public void contextLoads() {
} }
} }

View File

@ -1,65 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?> <?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" <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"> 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> <modelVersion>4.0.0</modelVersion>
<groupId>com.fxb</groupId> <groupId>com.fxb</groupId>
<artifactId>organizationservice</artifactId> <artifactId>organizationservice</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>organizationservice</name> <name>organizationservice</name>
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.4.RELEASE</version> <version>1.4.4.RELEASE</version>
</parent> </parent>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId> <artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR5</version> <version>Camden.SR5</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Camden.SR5</spring-cloud.version> <spring-cloud.version>Camden.SR5</spring-cloud.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId> <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId> <artifactId>spring-cloud-config-client</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@ -1,14 +1,14 @@
package com.fxb.organizationservice; package com.fxb.organizationservice;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient @EnableDiscoveryClient
public class OrganizationserviceApplication { public class OrganizationserviceApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(OrganizationserviceApplication.class, args); SpringApplication.run(OrganizationserviceApplication.class, args);
} }
} }

View File

@ -1,27 +1,27 @@
package com.fxb.organizationservice.controller; package com.fxb.organizationservice.controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
* 类功能简述 * 类功能简述
* 类功能详述 * 类功能详述
* *
* @author fanxb * @author fanxb
* @date 2018/11/22 18:23 * @date 2018/11/22 18:23
*/ */
@RestController @RestController
public class OrganizationController { public class OrganizationController {
@GetMapping(value = "/organization/{orgId}") @GetMapping(value = "/organization/{orgId}")
public Object getOrganizationInfo(@PathVariable("orgId") String orgId) { public Object getOrganizationInfo(@PathVariable("orgId") String orgId) {
Map<String, String> data = new HashMap<>(2); Map<String, String> data = new HashMap<>(2);
data.put("id", orgId); data.put("id", orgId);
data.put("name", orgId + "公司"); data.put("name", orgId + "公司");
return data; return data;
} }
} }

View File

@ -1,18 +1,18 @@
spring: spring:
application: application:
#指定名称以便spring cloud config客户端知道查找哪个配置 #指定名称以便spring cloud config客户端知道查找哪个配置
name: organizationservice name: organizationservice
profiles: profiles:
#指定环境 #指定环境
active: dev active: dev
cloud: cloud:
config: config:
enabled: true enabled: true
eureka: eureka:
instance: instance:
prefer-ip-address: true prefer-ip-address: true
client: client:
register-with-eureka: true register-with-eureka: true
fetch-registry: true fetch-registry: true
service-url: service-url:
defaultZone: http://localhost:8761/eureka/ defaultZone: http://localhost:8761/eureka/

View File

@ -1,16 +1,16 @@
package com.fxb.organizationservice; package com.fxb.organizationservice;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class OrganizationserviceApplicationTests { public class OrganizationserviceApplicationTests {
@Test @Test
public void contextLoads() { public void contextLoads() {
} }
} }