Spring boot项目改造成spring cloud一般过程

2018, Sep 17    

spring boot项目改造成spring cloud一般过程

1.注册中心的搭建

(五号标题)

2.spring boot项目改造(生产者)

2.1引入pom配置
  <dependencies>
    <!-- 注册中心客户端 -->
    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
  </dependencies>
2.2增加主类的注解

spring boot的启动主类中添加注解@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class SMSApplication {
	public static void main(String[] args) {
		SpringApplication.run(SMSApplication.class, args);
	}
}
2.3修改properties文件
#增加项目在注册中心的名字
spring.application.name=sms-service
#增加注册中心的地址
eureka.client.serviceUrl.defaultZone=http://localhost:8090/eureka/

3.spring boot项目改造(消费者)

#####3.1引入pom配置

  <dependencies>
    <!-- 注册中心客户端 -->
    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
  </dependencies>
3.2增加主类的注解

spring boot的启动主类中添加注解@EnableDiscoveryClient和创建RestTemplate的Spring Bean实例,并通过@LoadBalanced注解开启客户端负载均衡

@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {
	public static void main(String[] args) {
		SpringApplication.run(ConsumerApplication.class ,args);
	}
	
	@Bean
	@LoadBalanced
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
}
3.3创建消费者
@RestController
public class SmsController {
	
	/**
	 * 自动注入在项目主类中开启了客户端负载均衡的restTemplate实例
	 */
	@Autowired
	private RestTemplate restTemplate;
	
	/**
	 * 给接口增加消费者(相当于一个中间代理)
	 * 
	 * @param requestBody
	 * @return
	 */
	@RequestMapping(value = "/sms", method = RequestMethod.POST)
	public String smsConsumer(@RequestBody (required=false) String requestBody) {
		return restTemplate.postForObject("http://sms-service/sms", requestBody, String.class);
	}
}