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 @Autowired private RestTemplate restTemplate; // Other Lines of Code AddressResponse 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 Code private final RestTemplate restTemplate; // Using RestTemplateBuilder public EmployeeService(RestTemplateBuilder builder) { this.restTemplate = builder.build(); } public EmployeeResponse getEmployeeById(int id) { // Other Lines of Code // ------------------ // Using restTemplate Instance AddressResponse 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 { @Autowired private EmployeeRepo employeeRepo; @Autowired private ModelMapper mapper; private final RestTemplate restTemplate; // Using RestTemplateBuilder public 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 { @Autowired private 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 { @Bean public ModelMapper modelMapperBean() { return new ModelMapper(); }}