Spring框架是一个开源的Java平台,它为开发者提供了构建企业级应用的各种工具和功能。Spring Boot是基于Spring框架的一个子项目,旨在简化Spring应用的初始搭建以及开发过程。通过Spring Boot,你可以快速创建独立的、生产级别的基于Spring的应用程序。
Spring Boot应用程序可以是Web应用程序(通过Spring MVC或Spring WebFlux),也可以是命令行应用程序或其他类型的应用程序。
Spring Boot广泛应用于各种需要快速开发和部署的企业级应用,如微服务架构中的服务、RESTful API、后台管理系统等。
假设你有两个Spring Boot应用程序:一个是数据提供者(Provider),另一个是数据消费者(Consumer)。数据消费者需要从数据提供者那里读取数据。
// ProviderApplication.java
@SpringBootApplication
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
// DataController.java
@RestController
@RequestMapping("/api")
public class DataController {
@GetMapping("/data")
public String getData() {
return "Hello from Provider";
}
}
// ConsumerApplication.java
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
// DataClient.java
@Service
public class DataClient {
private final RestTemplate restTemplate;
@Autowired
public DataClient(RestTemplateBuilder builder) {
this.restTemplate = builder.build();
}
public String fetchData() {
return restTemplate.getForObject("http://localhost:8080/api/data", String.class);
}
}
或者使用WebClient:
// DataClient.java
@Service
public class DataClient {
private final WebClient webClient;
@Autowired
public DataClient(WebClient.Builder builder) {
this.webClient = builder.baseUrl("http://localhost:8080").build();
}
public Mono<String> fetchData() {
return webClient.get()
.uri("/api/data")
.retrieve()
.bodyToMono(String.class);
}
}
// ConsumerApplication.java
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@Bean
public CommandLineRunner run(DataClient dataClient) {
return args -> {
String data = dataClient.fetchData();
System.out.println("Data from Provider: " + data);
};
}
}
// WebConfig.java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://localhost:8081")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true);
}
}
通过以上步骤,你可以创建一个Spring Boot客户端应用程序来从另一个Spring Boot应用程序中读取数据。
领取专属 10元无门槛券
手把手带您无忧上云