Apžvalga

Spring Boot yra Java karkasas, palengvinantis savarankiškų, produkcinės kokybės aplikacijų kūrimą. Jis suteikia automatinę konfigūraciją, įdėtuosius serverius ir konkrečią požiūrį į REST API ir žiniatinklio aplikacijų kūrimą.

Prieš pradėdami
Įsitikinkite, kad jūsų valdymo skydelis atidarytas - jums reikės ten rodomų Git prisijungimo duomenų. Šiame šablone yra Spring Web, Spring Data JPA, MySQL tvarkyklė ir Thymeleaf šablonai.

Greitas startas

1

Sukurkite repozitoriją iš šablono

Valdymo skydelyje pereikite į skirtuką Tools & Deployment. Spauskite mygtuką "New Repository", išskleidžiamame sąraše pasirinkite Spring Boot šabloną, įveskite repozitorijos pavadinimą ir subdomeną, tada spauskite "Create Repository".

2

Klonuokite savo repozitoriją

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

Sukonfigūruokite duomenų bazę

Atnaujinkite src/main/resources/application.properties su valdymo skydelio prisijungimo duomenimis:

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

Sukompiliuokite ir paleiskite

./mvnw spring-boot:run

Pagal numatytuosius nustatymus serveris veikia adresu http://localhost:8080.

5

Įkelkite savo pakeitimus

git add .
git commit -m "Initial setup"
git push origin main
Kiekvienas push į Git automatiškai įdiegia jūsų aplikaciją. Patikrinkite Modulio darbo URL valdymo skydelyje, kad pamatytumėte savo gyvą svetainę.

Vietinis kūrimas su Docker

Jei vietoje neturite įdiegtos Java, galite naudoti Docker savo Spring Boot aplikacijai sukompiliuoti ir paleisti.

Kas yra Docker?
Docker sukuria izoliuotus „konteinerius" su visa reikalinga programine įranga (Java, Maven) jos neįdiegiant į jūsų kompiuterį.

Komandų vykdymas su Docker

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

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

Duomenų bazės konfigūracija

NStrim platforma jums suteikia MySQL/MariaDB duomenų bazę. Sukonfigūruokite savo application.properties failą su teisingais prisijungimo duomenimis.

Pilna konfigūracija

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
Svarbu
Jūsų duomenų bazės pavadinimas ir vartotojo vardas paprastai sutampa su jūsų valdymo skydelio vartotojo vardu (pvz., student01). Tikslioms reikšmėms patikrinkite valdymo skydelio prisijungimo duomenų skiltį.

Projekto struktūra

├── src/
│   └── main/
│       ├── java/com/example/
│       │   ├── Application.java          # Spring Boot įėjimo taškas
│       │   ├── controllers/              # REST valdikliai
│       │   ├── models/                   # JPA esybės
│       │   ├── repositories/             # Spring Data repozitorijos
│       │   └── services/                 # Verslo logika
│       └── resources/
│           ├── application.properties    # Konfigūracija
│           ├── templates/                # Thymeleaf šablonai
│           └── static/                   # CSS, JS, paveikslėliai
├── pom.xml                               # Maven priklausomybės
└── Dockerfile                            # Docker konfigūracija
        

Įprastos užduotys

REST valdiklio kūrimas

@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);
    }
}

JPA esybės kūrimas

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

    private String name;
    private String email;

    // getters and setters
}

Repozitorijos kūrimas

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

Naudingos komandos

./mvnw spring-boot:run Paleisti kūrimo serverį
./mvnw clean package Sukompiliuoti projektą
./mvnw test Vykdyti testus
./mvnw dependency:tree Rodyti priklausomybių medį

Trikčių šalinimas

Communications link failure / Connection refused

Priežastis: Duomenų bazės serveris yra neteisingas arba nepasiekiamas.

Sprendimas: Patikrinkite, ar spring.datasource.url sutampa su valdymo skydelio duomenų bazės serveriu.

Access denied for user

Priežastis: Neteisingas vartotojo vardas arba slaptažodis.

Sprendimas: Du kartus patikrinkite, ar spring.datasource.username ir spring.datasource.password tiksliai atitinka valdymo skydelio prisijungimo duomenis.

Prievadas 8080 jau naudojamas

Sprendimas: Pridėkite server.port=8081 į application.properties arba sustabdykite kitą procesą.

Whitelabel Error Page (404)

Priežastis: Joks valdiklis nesusietas su prašomu URL.

Sprendimas: Įsitikinkite, kad jūsų valdiklis turi teisingą @RequestMapping anotaciją ir aplikacija skenuoja teisingus paketus.

Diegimo eiga

Kodo pakeitimas git push mvn package Gyvai!
Daugiau informacijos rasite oficialioje Spring Boot dokumentacijoje.