Thinkphp个人发卡网源码(内置自动下载搭建部署教程)

  开源个人发卡网源码系统框架是一个同步REST,它使用简单的模板式 API执行HTTP请求。我们还可以说RestTemplate类,旨在调用REST服务。
  
  RestTemplateBuilder是一个可用于配置和创建发卡系统的构建器。RestTemplateBuilder提供了方便的方法来注册转换器、错误处理程序和 UriTemplateHandler。让我们通过一个例子来理解这个概念。
  
  源码:paywks.top/ka
  
  如果你想在发卡网源码中使用RestTemplate,那么首先我们必须在配置类文件中创建一个RestTemplate类的Bean,如下所示:
  public class EmployeeConfig {
     // Other Beans
     @Bean
     public RestTemplate restTemplateBean() {
          return new RestTemplate();
      }
     // Other Beans
  }
  然后我们可以在@Autowired注释的帮助下在我们的服务类中使用它,如下所示:

  public class EmployeeService {// Other Lines of Code@Autowiredprivate RestTemplate restTemplate;// Other Lines of CodeAddressResponse addressResponse = restTemplate.getForObject("http://localhost:8081/address-service/address/{id}", AddressResponse.class, id);employeeResponse.setAddressResponse(addressResponse);// ------------------}


  现在让我们在 RestTemplateBuilder 的帮助下创建一个 RestTemplate 实例。
  如何在 Spring Boot 应用程序中使用 RestTemplateBuilder?
  如果您使用 RestTemplateBuilder,则无需在配置文件中创建单独的 RestTemplate bean。我们只能在服务类构造函数的帮助下在服务类内部完成此操作;像这样的东西。

  @Servicepublic class EmployeeService {// Other Lines of Codeprivate final RestTemplate restTemplate;// Using RestTemplateBuilderpublic EmployeeService(RestTemplateBuilder builder) {this.restTemplate = builder.build();}public EmployeeResponse getEmployeeById(int id) {// Other Lines of Code// ------------------// Using restTemplate InstanceAddressResponse addressResponse = restTemplate.getForObject("http://localhost:8081/address-service/address/{id}", AddressResponse.class, id);employeeResponse.setAddressResponse(addressResponse);return employeeResponse;}}


  如果您想在 RestTemplateBuilder 的帮助下构建一个完整的工作 Spring Boot 项目,那么您可以按照下面的示例进行操作。
  步骤1:在Spring Initializr中创建一个新的Spring Boot项目
  要创建新的 Spring Boot 项目,请参阅如何在 Spring Initializr 中创建 Spring Boot 项目并在 IntelliJ IDEA 中运行它。
  步骤 2:在 MySQL Workbench 中创建架构并放入一些示例数据
  转到MySQL Workbench并创建一个名为gfgmicroservicesdemo的架构,并在其中创建一个名为employee 的表并放置一些示例数据,如下图所示。这里我们创建了 4 列并放置了一些示例数据。
  现在我们将从 Spring Boot 项目中的 Employee 表中获取员工数据。为此,请参阅以下步骤。在转向 IntelliJ IDEA 之前,让我们先看一下微服务的完整项目结构。
  步骤 3:更改 application.properties 文件
  现在在您的application.properties文件中进行以下更改。

  spring.datasource.url=jdbc:mysql://localhost:3306/gfgmicroservicesdemospring.datasource.username=put your username herespring.datasource.password=put your password herespring.application.name=employee-serviceserver.port=8080# Set Your Context Path Hereserver.servlet.context-path=/employee-serviceaddressservice.base.url=http://localhost:8081/address-service

 
  第 4 步:创建您的实体/模型类
  转到 src > main > java > 实体并创建一个 Employee 类并放入以下代码。这是我们的模型类。

  package com.gfg.employeaap.entity;import jakarta.persistence.*;@Entity@Table(name = "employee")public class Employee {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "id")private int id;@Column(name = "name")private String name;@Column(name = "email")private String email;@Column(name = "age")private String age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}}


  第 5 步:创建您的存储库接口
  转到 src > main > java >repository 并创建一个接口 EmployeeRepo 并输入以下代码。这是我们的存储库,我们在其中为所有与数据库相关的内容编写代码。

  package com.gfg.employeaap.repository;import com.gfg.employeaap.entity.Employee;import org.springframework.data.jpa.repository.JpaRepository;@Repositorypublic interface EmployeeRepo extends JpaRepository {}


  第 6 步:创建 AddressResponse 和 EmployeeResponse 类
  转到 src > main > java > response 并创建一个类 AddressResponse 并放入以下代码。

  package com.gfg.employeaap.response;public class AddressResponse {private int id;private String city;private String state;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getState() {return state;}public void setState(String state) {this.state = state;}}


  转到 src > main > java > response 并创建一个 EmployeeResponse 类并放入以下代码。
  package com.gfg.employeaap.response;

  public class EmployeeResponse {private int id;private String name;private String email;private String age;private AddressResponse addressResponse;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public AddressResponse getAddressResponse() {return addressResponse;}public void setAddressResponse(AddressResponse addressResponse) {this.addressResponse = addressResponse;}}

 
  第 7 步:创建您的服务类别
  转到 src > main > java > service 并创建一个 EmployeeService 类并放入以下代码。这是我们编写业务逻辑的服务类。这里我们使用 RestTemplateBuilder 概念。

  package com.gfg.employeaap.service;import com.gfg.employeaap.entity.Employee;import com.gfg.employeaap.repository.EmployeeRepo;import com.gfg.employeaap.response.AddressResponse;import com.gfg.employeaap.response.EmployeeResponse;import org.modelmapper.ModelMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.client.RestTemplateBuilder;import org.springframework.stereotype.Service;import org.springframework.web.client.RestTemplate;import java.util.Optional;@Servicepublic class EmployeeService {@Autowiredprivate EmployeeRepo employeeRepo;@Autowiredprivate ModelMapper mapper;private final RestTemplate restTemplate;// Using RestTemplateBuilderpublic EmployeeService(@Value("${addressservice.base.url}") String addressBaseUrl, RestTemplateBuilder builder) {this.restTemplate = builder.rootUri(addressBaseUrl).build();}public EmployeeResponse getEmployeeById(int id) {Optional employee = employeeRepo.findById(id);EmployeeResponse employeeResponse = mapper.map(employee, EmployeeResponse.class);AddressResponse addressResponse = restTemplate.getForObject("/address/{id}", AddressResponse.class, id);employeeResponse.setAddressResponse(addressResponse);return employeeResponse;}}


  第 8 步:创建员工控制器
  转到 src > main > java > controller 并创建一个 EmployeeController 类并输入以下代码。在这里,我们将创建一个端点“ /employees/{id} ”来使用 id 查找员工。

  package com.gfg.employeaap.controller;import com.gfg.employeaap.response.EmployeeResponse;import com.gfg.employeaap.service.EmployeeService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class EmployeeController {@Autowiredprivate EmployeeService employeeService;@GetMapping("/employees/{id}")private ResponseEntity getEmployeeDetails(@PathVariable("id") int id) {EmployeeResponse employee = employeeService.getEmployeeById(id);return ResponseEntity.status(HttpStatus.OK).body(employee);}}


  第9步:创建配置类
  转到 src > main > java > 配置并创建一个 EmployeeConfig 类并放入以下代码。
 

  package com.gfg.employeaap.configuration;import org.modelmapper.ModelMapper;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class EmployeeConfig {@Beanpublic ModelMapper modelMapperBean() {return new ModelMapper();}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部