Ich werde ein Memorandum darüber aufbewahren, was ich gelernt habe, als ich Spring Boot von November bis Dezember letzten Jahres zum ersten Mal berührt habe.
Für diejenigen, die Spring Boot von nun an berühren möchten. Ich denke, dass es denen bekannt sein wird, die es benutzt haben.
Eine einfache externe öffentliche API, die einfach Informationen basierend auf dem empfangenen Eingabewert zurückgibt.
Name der Klasse | Überblick |
---|---|
RestController-Klasse | Eine Klasse, die den Schnittstellenteil der API implementiert. |
Formularklasse | Eine Klasse, die Informationen zum Inhalt von Anforderungen von Clients und zur zurückgegebenen Antwort enthält. |
RestControllerAdvice-Klasse | RestController Eine Klasse, die die allgemeine Verarbeitung implementiert. |
Serviceklasse | Eine Klasse, die Geschäftslogik implementiert. |
Repository-Klasse | Eine Klasse, die DB-Zugriff ausführt. |
Entitätsklasse | Eine Klasse, die die von der Datenbank erfassten Daten und die in die Datenbank einzugebenden Daten enthält. |
Fügen Sie "@ SpringBootApplication" hinzu.
Anmerkung | Überblick |
---|---|
@EnableAutoConfiguration |
Die automatische Einstellung von Spring Boot ist aktiviert und verschiedene Einstellungen werden automatisch entsprechend den definierten Abhängigkeiten vorgenommen. |
@ComponentScan |
Ein Komponentenscan wird durchgeführt und in dem zu scannenden Paket@Component Die Klasse mit wird automatisch vom DI-Container geladen und verwaltet. Die Klasse, die die Komponenten gescannt hat@Autowired Kann von auf eine Variable gesetzt werden. * Siehe den folgenden Beispielcode. |
@Configuration |
Durch Zuweisen können Beans einzeln registriert und Einstellungsklassen gelesen werden. |
Verschiedene Klassen werden von @ ComponentScan
und @ EnableAutoConfiguration
gelesen und festgelegt, und die Anwendung wird ausgeführt.
SampleApplication.java
@SpringBootApplication
public class SampleApplication {
public static void main (final String[] args) {
SpringApplication.run (SampleApplication .class, args);
}
@Override
protected SpringApplicationBuilder configure (final SpringApplicationBuilder builder) {
return builder.sources (SampleApplication .class);
}
}
@ ComponentScan
.SampleController.java
/**
*Beispielsteuerung.
*/
@RestController
@Validated
public class SampleController {
@Autowired
private SampleService service; //Ordnen Sie die zu verwendende Serviceklasse zu.
@PostMapping (path = "/sample", //Geben Sie den Pfad an, der der Methode zugeordnet werden soll.
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, //Geben Sie den Medientyp der zu empfangenden Anforderung an.
produces = MediaType.APPLICATION_JSON_UTF8_VALUE) //Geben Sie den Medientyp der zurückzugebenden Antwort an.
@CrossOrigin
public ResponseEntity<SampleForm> sampleMethod (
@RequestHeader (value = "sample_key") //Definieren Sie den Schlüsselwert des vom Header empfangenen Werts.
@NotEmpty (message = "sample_key is empty.") //Wenn Sie ohne Verwendung des Formulars eine Prüfung durchführen möchten, definieren Sie die Prüfung hier.
@Valid String sampleKey, //Definieren Sie eine Variable, die den vom Header empfangenen Wert speichert.
@RequestBody
@Valid SampleForm form //Definieren Sie die Form-Klasse, in der der vom Text empfangene Wert gespeichert ist, und die Variable, in der er gespeichert ist.
) {
return new ResponseEntity<> (service.sampleMethod (form.getSampleUserId), HttpStatus.OK);
}
}
SampleForm.java
@Data
@ToString
public class SampleForm implements Serializable {
private static final long serialVersionUID = 1L;
@JsonProperty ("sample_user_id") //Definieren Sie den Schlüsselwert in JSON.
@NotEmpty (message = "sampleUserId is empty") //Definieren Sie den Inhalt der Prüfung.
private String sampleUserId;
}
@ ComponentScan
.SampleExceptionHandler.java
@RestControllerAdvice
public class SampleExceptionHandler {
@ExceptionHandler (Exception.class) //Definieren Sie die zu fangende Ausnahme.
@ResponseStatus (HttpStatus.INTERNAL_SERVER_ERROR) //Definieren Sie den HTTP-Statuscode der Antwort, die zurückgegeben wird, wenn die obige Ausnahme auftritt.
protected ErrorForm handleInternalServerError (Exception e) {
logger.error (e);
return new ErrorForm ("Internal Server Error");
}
@RequiredArgsConstructor
private class ErrorForm implements Serializable {
private static final long serialVersionUID = 1L;
private final String message;
}
}
@ ComponentScan
.SampleService.java
@Service
@Transactional //Rollback automatisch, wenn eine Ausnahme auftritt.
public class SampleService {
@Autowired
private SampleUserRepository sampleUserRepository; //Ordnen Sie die zu verwendende Repository-Klasse zu.
public SampleForm returnSampleForm (String sampleUserId) {
return convertToSampleForm(sampleUserRepository.findBySampleUserId(sampleUserId));
}
}
@ ComponentScan
.SampleUserRepository.java
@Repository
public interface SampleUserRepository extends JpaRepository<SampleUser, String> { //Definieren Sie die Zugriffszieltabelle und den Primärschlüsseltyp.
SampleUser findBySampleUserId (String sampleUserId); //Definieren Sie Methodennamen und Argumente gemäß den Namenskonventionen.
}
SampleUser.java
@Entity
@Table (name = "sample_user") //Definieren Sie den zu verknüpfenden Tabellennamen.
@Data
public class SampleUser implements Serializable {
private static final long serialVersionUID = 1L;
/**Beispielbenutzer-ID*/
@Id //Dem Element des Primärschlüssels zugewiesen.
@GeneratedValue (strategy = GenerationType.IDENTITY) //Wenn Sie eine automatische Nummerierung wünschen, definieren Sie die Nummerierungsmethode.
private String sampleUserId;
/**Beispiel Benutzername*/
private String sampleUserName;
}
Recommended Posts