二、Spring Cloud详解一、从Spring boot项目开始

本文介绍了使用Spring Boot创建项目的步骤,先创建父类项目并声明为Spring Boot项目,添加依赖和打包插件,接着创建两个Java项目并变为Web项目,分别作为服务提供者和消费者。还指出直接在Controller中写服务提供者URL不利于维护,可将其写在yml配置文件中用@Value注解获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建springboot项目
##1、先创建一个父类项目:futurecloud-master
###1.1. 将当前项目声明为springboot项目

org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE

###1.2. 添加springboot项目依赖

<dependencies>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
</dependencies>

###1.3. 添加maven 打包插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

##2. 创建两个java 项目 (Module):futurecloud-user、futurecloud-order
###2.1. 将此两个项目变为web项目
在这两个项目的pom.xm中添加依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>

###2.2. futurecloud-user项目作为服务提供者

####2.2.1. 配置application.yml
server:
port: 7900 #程序启动端口,也就是tomcat的端口
spring:
application:
name: futurecloud-user #应用名称,别名


@RestController #将Controller设置成Rest风格
public class UserController {

@GetMapping("/user/{id}")
public User getUser(@PathVariable  Long id){
    return new User(id);
}

}

###2.3. futurecloud-order项目作为服务消费者
####2.3.1. 配置application.yml
server:
port: 8900
spring:
application:
name: futurecloud-order


@RestController
public class OrderController {

@Autowired
private RestTemplate restTemplate; //spring 提供的一个用于访问rest接口的模板对象

private String url = “http://localhost:7900/user/”;
private String url;

@GetMapping("/order/{id}")                                                                          
public User getOrder(@PathVariable Long id){

    //访问提供者,获取数据
    //通过防伪rest,获取到Json数据,然后转换成User对象
    User user = restTemplate.getForObject(url + id,User.class);
    return user;
}

}


#问题:怎么维护服务提供者的URL地址?
问题:以上服务提供者的Url直接写在Controller中,不利于代码的管理以及后期的维护,
可以将url写在yml配置文件中,然后使用@Value 注解获取配置参数,如下yml配置


server:
port: 8900
spring:
application:
name: futurecloud-order
user:
url: http://localhost:7900/user/


Controller修改为:


@RestController
public class OrderController {

@Autowired
private RestTemplate restTemplate; //spring 提供的一个用于访问rest接口的模板对象

// private String url = “http://localhost:7900/user/”;
@Value("${user.url}") //将url写到yml配置文件中
private String url;

@GetMapping("/order/{id}")                                                                          
public User getOrder(@PathVariable Long id){

    //访问提供者,获取数据
    //通过防伪rest,获取到Json数据,然后转换成User对象
    User user = restTemplate.getForObject(url + id,User.class);
    return user;
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值