diff --git a/README.md b/README.md index c31f676..88204d7 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ spring-cloud-starter Spring cloud使用的各种示例,以最简单、最实用为标准 - [spring-cloud-eureka](https://github.com/ityouknow/spring-cloud-starter/tree/master/spring-cloud-eureka):eureka server单机、双机、集群示例 +- [service-producer-consumer](https://github.com/ityouknow/spring-cloud-starter/tree/master/service-producer-consumer):利用eureka实现服务提供与调用demo diff --git a/service-producer-consumer/spring-cloud-consumer/pom.xml b/service-producer-consumer/spring-cloud-consumer/pom.xml new file mode 100644 index 0000000..0d316ac --- /dev/null +++ b/service-producer-consumer/spring-cloud-consumer/pom.xml @@ -0,0 +1,66 @@ + + + 4.0.0 + + com.neo + spring-cloud-consumer + 0.0.1-SNAPSHOT + jar + + spring-cloud-consumer + Demo project for Spring cloud consumer + + + org.springframework.boot + spring-boot-starter-parent + 1.5.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.7 + Dalston.RELEASE + + + + + org.springframework.cloud + spring-cloud-starter-feign + + + org.springframework.cloud + spring-cloud-starter-eureka + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/ConsumerApplication.java b/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/ConsumerApplication.java new file mode 100644 index 0000000..41a3da9 --- /dev/null +++ b/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/ConsumerApplication.java @@ -0,0 +1,20 @@ +package com.neo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.netflix.eureka.EnableEurekaClient; +import org.springframework.cloud.netflix.feign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ConsumerApplication { + + public static void main(String[] args) { + SpringApplication.run(ConsumerApplication.class, args); + } + + + +} diff --git a/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/controller/ConsumerController.java b/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/controller/ConsumerController.java new file mode 100644 index 0000000..9922329 --- /dev/null +++ b/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/controller/ConsumerController.java @@ -0,0 +1,20 @@ +package com.neo.controller; + +import com.neo.remote.HelloRemote; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class ConsumerController { + + @Autowired + HelloRemote HelloRemote; + + @RequestMapping("/hello/{name}") + public String index(@PathVariable("name") String name) { + return HelloRemote.hello(name); + } + +} \ No newline at end of file diff --git a/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/remote/HelloRemote.java b/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/remote/HelloRemote.java new file mode 100644 index 0000000..85a0db1 --- /dev/null +++ b/service-producer-consumer/spring-cloud-consumer/src/main/java/com/neo/remote/HelloRemote.java @@ -0,0 +1,19 @@ +package com.neo.remote; + +import org.springframework.cloud.netflix.feign.FeignClient; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * Created by summer on 2017/5/11. + */ +@FeignClient(name= "spring-cloud-producer") +public interface HelloRemote { + + @RequestMapping(value = "/hello") + public String hello(@RequestParam(value = "name") String name); + + +} diff --git a/service-producer-consumer/spring-cloud-consumer/src/main/resources/application.properties b/service-producer-consumer/spring-cloud-consumer/src/main/resources/application.properties new file mode 100644 index 0000000..e193022 --- /dev/null +++ b/service-producer-consumer/spring-cloud-consumer/src/main/resources/application.properties @@ -0,0 +1,4 @@ +spring.application.name=spring-cloud-consumer +server.port=9001 +eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/ + diff --git a/service-producer-consumer/spring-cloud-consumer/src/test/java/com/neo/ProducerApplicationTests.java b/service-producer-consumer/spring-cloud-consumer/src/test/java/com/neo/ProducerApplicationTests.java new file mode 100644 index 0000000..677161e --- /dev/null +++ b/service-producer-consumer/spring-cloud-consumer/src/test/java/com/neo/ProducerApplicationTests.java @@ -0,0 +1,16 @@ +package com.neo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ProducerApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/service-producer-consumer/spring-cloud-eureka/pom.xml b/service-producer-consumer/spring-cloud-eureka/pom.xml new file mode 100644 index 0000000..7585053 --- /dev/null +++ b/service-producer-consumer/spring-cloud-eureka/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + com.neo + spring-cloud-eureka + 0.0.1-SNAPSHOT + jar + + spring-cloud-eureka + Demo project for Spring cloud eureka + + + org.springframework.boot + spring-boot-starter-parent + 1.5.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.7 + Dalston.RELEASE + + + + + org.springframework.cloud + spring-cloud-starter-eureka-server + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/service-producer-consumer/spring-cloud-eureka/src/main/java/com/neo/SpringCloudEurekaApplication.java b/service-producer-consumer/spring-cloud-eureka/src/main/java/com/neo/SpringCloudEurekaApplication.java new file mode 100644 index 0000000..5d47795 --- /dev/null +++ b/service-producer-consumer/spring-cloud-eureka/src/main/java/com/neo/SpringCloudEurekaApplication.java @@ -0,0 +1,14 @@ +package com.neo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; + +@SpringBootApplication +@EnableEurekaServer +public class SpringCloudEurekaApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringCloudEurekaApplication.class, args); + } +} diff --git a/service-producer-consumer/spring-cloud-eureka/src/main/resources/application.properties b/service-producer-consumer/spring-cloud-eureka/src/main/resources/application.properties new file mode 100644 index 0000000..83bed96 --- /dev/null +++ b/service-producer-consumer/spring-cloud-eureka/src/main/resources/application.properties @@ -0,0 +1,8 @@ +spring.application.name=spring-cloud-eureka + +server.port=8000 +eureka.client.register-with-eureka=false +eureka.client.fetch-registry=false + +eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/ + diff --git a/service-producer-consumer/spring-cloud-eureka/src/test/java/com/neo/SpringCloudEurekaApplicationTests.java b/service-producer-consumer/spring-cloud-eureka/src/test/java/com/neo/SpringCloudEurekaApplicationTests.java new file mode 100644 index 0000000..d536a6b --- /dev/null +++ b/service-producer-consumer/spring-cloud-eureka/src/test/java/com/neo/SpringCloudEurekaApplicationTests.java @@ -0,0 +1,16 @@ +package com.neo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class SpringCloudEurekaApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/service-producer-consumer/spring-cloud-producer/pom.xml b/service-producer-consumer/spring-cloud-producer/pom.xml new file mode 100644 index 0000000..ee2be51 --- /dev/null +++ b/service-producer-consumer/spring-cloud-producer/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + com.neo + spring-cloud-producer + 0.0.1-SNAPSHOT + jar + + spring-cloud-producer + Demo project for Spring cloud producer + + + org.springframework.boot + spring-boot-starter-parent + 1.5.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.7 + Dalston.RELEASE + + + + + org.springframework.cloud + spring-cloud-starter-eureka + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/service-producer-consumer/spring-cloud-producer/src/main/java/com/neo/ProducerApplication.java b/service-producer-consumer/spring-cloud-producer/src/main/java/com/neo/ProducerApplication.java new file mode 100644 index 0000000..d6275cd --- /dev/null +++ b/service-producer-consumer/spring-cloud-producer/src/main/java/com/neo/ProducerApplication.java @@ -0,0 +1,14 @@ +package com.neo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class ProducerApplication { + + public static void main(String[] args) { + SpringApplication.run(ProducerApplication.class, args); + } +} diff --git a/service-producer-consumer/spring-cloud-producer/src/main/java/com/neo/controller/HelloController.java b/service-producer-consumer/spring-cloud-producer/src/main/java/com/neo/controller/HelloController.java new file mode 100644 index 0000000..6b54992 --- /dev/null +++ b/service-producer-consumer/spring-cloud-producer/src/main/java/com/neo/controller/HelloController.java @@ -0,0 +1,14 @@ +package com.neo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class HelloController { + + @RequestMapping("/hello") + public String index(@RequestParam String name) { + return "hello "+name+",this is first messge"; + } +} \ No newline at end of file diff --git a/service-producer-consumer/spring-cloud-producer/src/main/resources/application.properties b/service-producer-consumer/spring-cloud-producer/src/main/resources/application.properties new file mode 100644 index 0000000..2de4336 --- /dev/null +++ b/service-producer-consumer/spring-cloud-producer/src/main/resources/application.properties @@ -0,0 +1,4 @@ +spring.application.name=spring-cloud-producer +server.port=9000 +eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/ + diff --git a/service-producer-consumer/spring-cloud-producer/src/test/java/com/neo/ProducerApplicationTests.java b/service-producer-consumer/spring-cloud-producer/src/test/java/com/neo/ProducerApplicationTests.java new file mode 100644 index 0000000..677161e --- /dev/null +++ b/service-producer-consumer/spring-cloud-producer/src/test/java/com/neo/ProducerApplicationTests.java @@ -0,0 +1,16 @@ +package com.neo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ProducerApplicationTests { + + @Test + public void contextLoads() { + } + +}