Java SpringBoot Framework

Java 常用类库Gängige Java-Bibliotheken


SpringBoot ist ein Erweiterungsprojekt des Spring-Frameworks, das die anfängliche Einrichtung und den Entwicklungsprozess von Spring-Anwendungen vereinfachen soll.

SpringBoot ermöglicht Entwicklern, Spring-Anwendungen durch die Philosophie der "Konvention vor Konfiguration" schnell zu starten und auszuführen.

Kernfunktionen von SpringBoot

  1. Autokonfiguration: Konfiguriert Spring-Anwendungen automatisch anhand der zum Projekt hinzugefügten JAR-Abhängigkeiten.
  2. Standalone: Eingebettete Tomcat-, Jetty- oder Undertow-Server; WAR-Dateien müssen nicht bereitgestellt werden.
  3. Vereinfachte Abhängigkeitsverwaltung: Vereinfacht die Maven/Gradle-Konfiguration durch Starter-Abhängigkeiten.
  4. Produktionsreif: Bietet Metriken, Health Checks, externalisierte Konfiguration und weitere Funktionen.
  5. Keine Codegenerierung: Keine XML-Konfiguration erforderlich.

Kernkomponenten von SpringBoot

1. SpringBoot Starter

SpringBoot Starter ist eine Sammlung praktischer Abhängigkeitsdeskriptoren, mit denen Sie alle benötigten Technologien an einer Stelle erhalten. Zum Beispiel:

  • spring-boot-starter-web: Wird zum Erstellen von Webanwendungen verwendet.
  • spring-boot-starter-data-jpa: Wird für den JPA-Datenbankzugriff verwendet.
  • spring-boot-starter-test: Wird für Tests verwendet.

2. SpringBoot-Autokonfiguration

SpringBoot konfiguriert die Anwendung automatisch basierend auf den JAR-Paketen im Classpath. Wenn sich beispielsweise die H2-Datenbank im Classpath befindet, konfiguriert SpringBoot automatisch eine In-Memory-Datenbank.

3. SpringBoot Actuator

Bietet produktionsreife Funktionen, die beim Überwachen und Verwalten von Anwendungen helfen:

  • Integritätsprüfungen der Anwendung
  • Erfassung von Metriken
  • HTTP-Tracing
  • Umgebungsinformationen

Erstellen Sie Ihre erste SpringBoot-Anwendung

1. Erstellen Sie ein Projekt mit Spring Initializr

Besuchen Siestart.spring.io, wählen Sie:

  • Maven-Projekt
  • Java-Sprache
  • Neueste SpringBoot-Version
  • Fügen Sie die "Web"-Abhängigkeit hinzu

2. Projektstruktur

Typische SpringBoot-Projektstruktur:

src/
  main/
    java/
      com/example/demo/
        DemoApplication.java   # 主启动类
    resources/
      application.properties  # 配置文件
  test/
    java/
      com/example/demo/
        DemoApplicationTests.java # 测试类

3. Einen einfachen REST-Controller schreiben

Beispiel

@RestController
@RequestMapping("/api")
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, SpringBoot!";
    }
}

4. Führen Sie die Anwendung aus

Führen SieDemoApplicationMethode in der Klassemain, wird die Anwendung auf dem Standardport 8080 starten.

Besuchenhttp://localhost:8080/api/hellowird die zurückgegebene Nachricht "Hello, SpringBoot!" sehen.


SpringBoot-Konfiguration

1. Konfigurationsdateien

SpringBoot unterstützt mehrere Konfigurationsmethoden:

  • application.properties
  • application.yml
  • Umgebungsvariablen
  • Kommandozeilenargumente

Beispielapplication.properties:

Beispiel

server.port=9090
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret

2. Konfiguration für mehrere Umgebungen

Sie können für verschiedene Umgebungen unterschiedliche Konfigurationsdateien erstellen:

  • application-dev.properties: Entwicklungsumgebung
  • application-prod.properties: Produktionsumgebung

Aktive Umgebung festlegen überspring.profiles.active:

Beispiel

spring.profiles.active=dev

SpringBoot-Datenzugriff

1. Verwendung von Spring Data JPA

Abhängigkeit hinzufügen:

Beispiel

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Entity-Klasse definieren:

Beispiel

@Entität
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    // Getter und Setter
}

Repository-Schnittstelle erstellen:

Beispiel

public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByName(String name);
}

Verwendung in der Service-Schicht:

Beispiel

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
   
    public List<User> getUsersByName(String name) {
        return userRepository.findByName(name);
    }
}

Bewährte Praktiken für SpringBoot

  1. Schichtenarchitektur: Befolgen Sie die Controller-Service-Repository-Schichtung
  2. Ausnahmebehandlung: Verwenden Sie@ControllerAdviceglobale Ausnahmebehandlung
  3. Protokollierung: Verwenden Sie SLF4J für die Protokollierung
  4. Unit-Testing: Schreiben Sie ausreichend Tests für die Geschäftslogik
  5. API-Dokumentation: Integrieren Sie Swagger, um die API-Dokumentation zu generieren

Beispiel: Globale Ausnahmebehandlung

Beispiel

@ControllerAdvice
public class GlobalExceptionHandler {
   
    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<ErrorResponse> handleResourceNotFound(ResourceNotFoundException ex) {
        ErrorResponse error = new ErrorResponse(
            "NOT_FOUND",
            ex.getMessage()
        );
        return new ResponseEntity<>(error, HttpStatus.NOT_FOUND);
    }
}

SpringBoot Fortgeschrittene Themen

  1. Spring Security: Authentifizierung und Autorisierung
  2. Spring Cloud: Microservices-Architektur
  3. Spring Batch: Batchverarbeitung
  4. WebFlux: Reaktive Programmierung
  5. Docker-Integration: Containerisierte Bereitstellung

SpringBoot verbessert die Entwicklungseffizienz von Java-Anwendungen erheblich, indem es die Konfiguration vereinfacht und sofort einsatzbereite Funktionen bietet. Es ist eines der unverzichtbaren Frameworks in der modernen Java-Entwicklung.

Java 常用类库Gängige Java-Bibliotheken

Andere Erweiterungen