В нашем предыдущем посте мы создали несколько экземпляров PostgreSQL с одинаковыми данными.
Нашим следующим шагом будет настройка нашего весеннего проекта с использованием обоих серверов.

Как указывалось ранее, мы будем использовать часть кода, взятого из сообщения Spring Boot JPA , поскольку мы используем точно такую же базу данных.
Это будет наш файл сборки Gradle
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
plugins { id 'org.springframework.boot' version '2.1.9.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' id 'java'}group = 'com.gkatzioura'version = '0.0.1-SNAPSHOT'sourceCompatibility = '1.8'repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation "org.postgresql:postgresql:42.2.8" testImplementation 'org.springframework.boot:spring-boot-starter-test'} |
Теперь давайте приступим к созданию модели на основе таблицы, созданной в предыдущем блоге.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
package com.gkatzioura.springdatareadreplica.entity;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name = "employee", catalog="spring_data_jpa_example")public class Employee { @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "firstname") private String firstName; @Column(name = "lastname") private String lastname; @Column(name = "email") private String email; @Column(name = "age") private Integer age; @Column(name = "salary") private Integer salary; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getSalary() { return salary; } public void setSalary(Integer salary) { this.salary = salary; }} |
И следующим шагом является создание хранилища данных Spring.
|
1
2
3
4
5
6
7
|
package com.gkatzioura.springdatareadreplica.repository;import org.springframework.data.jpa.repository.JpaRepository;import com.gkatzioura.springdatareadreplica.entity.Employee;public interface EmployeeRepository extends JpaRepository<Employee,Long> {} |
Также мы собираемся добавить контроллер.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package com.gkatzioura.springdatareadreplica.controller;import java.util.List;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.gkatzioura.springdatareadreplica.entity.Employee;import com.gkatzioura.springdatareadreplica.repository.EmployeeRepository;@RestControllerpublic class EmployeeContoller { private final EmployeeRepository employeeRepository; public EmployeeContoller(EmployeeRepository employeeRepository) { this.employeeRepository = employeeRepository; } @RequestMapping("/employee") public List<Employee> getEmployees() { return employeeRepository.findAll(); }} |
Все, что вам нужно, это просто добавить нужные свойства в вашем application.yaml
|
1
2
3
4
5
6
7
|
spring: datasource: platform: postgres driverClassName: org.postgresql.Driver username: db-user password: your-password url: jdbc:postgresql://127.0.0.2:5432/postgres |
Весенняя загрузка позволила в наше время не беспокоиться ни о каких конфигурациях JPA.
Это все, что вам нужно для запуска приложения. Как только ваше приложение запустится, просто попробуйте вызвать сотрудников.
|
1
|
curl http://localhost:8080/employee |
Как вы видели, мы не делали никакой конфигурации JPA. Начиная с Spring Boot 2, указание URL базы данных достаточно для автоматической настройки, чтобы выполнить эту конфигурацию за вас.
Однако в нашем случае мы хотим иметь несколько конфигураций источника данных и менеджера сущностей. В следующем посте мы настроим менеджеров сущностей для нашего приложения.
|
Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. См. Оригинальную статью здесь: чтение реплик и Spring Data, часть 2. Настройка базового проекта. Мнения, высказанные участниками Java Code Geeks, являются их собственными. |