Overzicht

Spring Boot is een Java-framework dat het eenvoudig maakt om zelfstandige applicaties van productiekwaliteit te maken. Het biedt automatische configuratie, embedded servers en een opiniegestuurde aanpak voor het bouwen van REST API's en webapplicaties.

Voordat je begint
Zorg ervoor dat je dashboard geopend is - je hebt de daar getoonde Git-inloggegevens nodig. Dit sjabloon bevat Spring Web, Spring Data JPA, MySQL-driver en Thymeleaf-templating.

Snelstart

1

Repository aanmaken vanuit sjabloon

Ga in je dashboard naar het tabblad Tools & Deployment. Klik op de knop "New Repository", selecteer het Spring Boot-sjabloon uit het dropdownmenu, voer een repository-naam en subdomein in en klik vervolgens op "Create Repository".

2

Je repository klonen

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Database configureren

Werk src/main/resources/application.properties bij met je dashboard-inloggegevens:

spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
4

Bouwen en uitvoeren

./mvnw spring-boot:run

De server draait standaard op http://localhost:8080.

5

Je wijzigingen pushen

git add .
git commit -m "Initial setup"
git push origin main
Elke push naar Git implementeert automatisch je applicatie. Bekijk je Module Work URL op het dashboard om je live site te zien.

Lokale ontwikkeling met Docker

Als je geen Java lokaal hebt geïnstalleerd, kun je Docker gebruiken om je Spring Boot-applicatie te bouwen en uit te voeren.

Wat is Docker?
Docker maakt geïsoleerde "containers" met alle software die je nodig hebt (Java, Maven) zonder ze op je computer te installeren.

Commando's uitvoeren met Docker

# Build the project
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 ./mvnw clean package -DskipTests

# Run the application
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/*.jar

Databaseconfiguratie

Het NStrim-platform biedt je een MySQL/MariaDB-database. Configureer je application.properties-bestand met de juiste inloggegevens.

Volledige configuratie

spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
Belangrijk
Je databasenaam en gebruikersnaam zijn meestal hetzelfde als je dashboard-gebruikersnaam (bijv. student01). Controleer het inloggegevens-gedeelte van je dashboard voor de exacte waarden.

Projectstructuur

├── src/
│   └── main/
│       ├── java/com/example/
│       │   ├── Application.java          # Spring Boot-startpunt
│       │   ├── controllers/              # REST-controllers
│       │   ├── models/                   # JPA-entiteiten
│       │   ├── repositories/             # Spring Data-repositories
│       │   └── services/                 # Bedrijfslogica
│       └── resources/
│           ├── application.properties    # Configuratie
│           ├── templates/                # Thymeleaf-templates
│           └── static/                   # CSS, JS, afbeeldingen
├── pom.xml                               # Maven-afhankelijkheden
└── Dockerfile                            # Docker-configuratie
        

Veelvoorkomende taken

Een REST-controller aanmaken

@RestController
@RequestMapping("/api/users")
public class UserController {

    @GetMapping
    public List<User> getAll() {
        return userRepository.findAll();
    }

    @PostMapping
    public User create(@RequestBody User user) {
        return userRepository.save(user);
    }
}

Een JPA-entiteit aanmaken

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String email;

    // getters and setters
}

Een repository aanmaken

public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByEmail(String email);
}

Handige commando's

./mvnw spring-boot:run Ontwikkelingsserver starten
./mvnw clean package Het project bouwen
./mvnw test Tests uitvoeren
./mvnw dependency:tree Afhankelijkhedenboom tonen

Probleemoplossing

Communications link failure / Connection refused

Oorzaak: Database-host is onjuist of niet bereikbaar.

Oplossing: Controleer of spring.datasource.url overeenkomt met de database-host uit je dashboard.

Access denied for user

Oorzaak: Verkeerde gebruikersnaam of wachtwoord.

Oplossing: Controleer of spring.datasource.username en spring.datasource.password exact overeenkomen met je dashboard-inloggegevens.

Port 8080 already in use

Oplossing: Voeg server.port=8081 toe aan application.properties of stop het andere proces.

Whitelabel Error Page (404)

Oorzaak: Er is geen controller toegewezen aan de aangevraagde URL.

Oplossing: Zorg ervoor dat je controller de juiste @RequestMapping-annotatie heeft en dat de applicatie de juiste packages scant.

Implementatie-workflow

Codewijziging git push mvn package Live!
Voor meer informatie kun je de officiële Spring Boot-documentatie raadplegen.