Schnellstart
Quelldateien
Diese Seite wurde aus den folgenden Quelldateien erstellt:
Umgebungskonfiguration Profile
Das nbcio-boot System verwendet Spring Profile zur Unterscheidung verschiedener Laufzeitumgebungen. Die Hauptkonfiguration befindet sich in application.yml, wobei standardmäßig das Entwicklungsprofil aktiviert ist.
Die zentrale Konfigurationsdatei definiert den Anwendungsnamen als jeecg-system und setzt das aktive Profil über die Umgebungsvariable ${env:dev} (nbcio-boot-module-system/src/main/resources/application.yml:1-6). Für Produktionsumgebungen muss diese Variable entsprechend angepasst oder der Wert direkt geändert werden.
Das Entwicklungsprofil application-dev.yml konfiguriert den Server auf Port 8080 mit dem Kontextpfad /nbcio-boot (nbcio-boot-module-system/src/main/resources/application-dev.yml:1-14). Die Komprimierung ist für Responses ab 1024 Bytes aktiviert und unterstützt gängige MIME-Typen wie JavaScript, JSON, XML und CSS.
| Einstellung | Wert | Beschreibung |
|---|---|---|
| Server Port | 8080 | HTTP-Listener-Port |
| Context Path | /nbcio-boot | Basis-URL-Pfad für alle Endpoints |
| Komprimierung | ab 1024 Bytes | Response-Komprimierung aktiviert |
Datenbankverbindung einrichten
MySQL Datenbankkonfiguration
Das System benötigt eine MySQL-Datenbank mit der Bezeichnung nbcio-boot. Die Verbindung wird über den Druid Connection Pool verwaltet, der für Leistung und Überwachung optimiert ist.
Die Master-Datenquelle ist unter spring.datasource.dynamic.datasource.master konfiguriert und verbindet sich mit jdbc:mysql://192.168.199.151:3306/nbcio-boot (nbcio-boot-module-system/src/main/resources/application-dev.yml:104-148). Der Treiber verwendet com.mysql.cj.jdbc.Driver mit Zeitzoneneinstellung Asia/Shanghai.
Wichtige Verbindungspool-Parameter:
| Parameter | Wert | Zweck |
|---|---|---|
| initial-size | 5 | Initiale Verbindungen |
| min-idle | 5 | Minimale Idle-Verbindungen |
| maxActive | 20 | Maximale aktive Verbindungen |
| maxWait | 60000ms | Maximale Wartezeit auf Verbindung |
| validationQuery | SELECT 1 FROM DUAL | Verbindungsprüfung |
Die Druid-Statistik-Schnittstelle ist unter dem Kontextpfad erreichbar mit den Anmeldedaten admin / 123456 (nbcio-boot-module-system/src/main/resources/application-dev.yml:104-148).
Redis Cache Anbindung
Redis wird als Cache und Session-Speicher verwendet. Die Verbindung erfolgt zu 192.168.199.151:6379 mit dem Passwort masterredis (nbcio-boot-module-system/src/main/resources/application-dev.yml:149-161).
Die Lettuce-Verbindungspool-Konfiguration setzt folgende Werte:
- max-active: 8 — Maximale gleichzeitige Verbindungen
- max-idle: 8 — Maximale Idle-Verbindungen im Pool
- max-wait: -1ms — Unbegrenzte Wartezeit bei Pool-Erschöpfung
- min-idle: 0 — Keine Mindestanzahl an Idle-Verbindungen
Datenbankinitialisierung
SQL Schema Import
Vor dem ersten Start muss das Datenbankschema importiert werden. Die Datei db/nbcio-boot.sql enthält alle notwendigen Tabellenstrukturen für Flowable Workflow-Engine und Systemkomponenten.
Das Schema umfasst Tabellen für CMMN (Case Management) wie act_cmmn_casedef und act_cmmn_deployment (db/nbcio-boot.sql:111-146). Diese Tabellen verwenden ENGINE=InnoDB mit utf8mb4 Zeichensatz für vollständige Unicode-Unterstützung.
Initialisierungsschritte:
bash1# 1. MySQL-Datenbank erstellen 2mysql -u root -p -e "CREATE DATABASE nbcio_boot CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 3 4# 2. Schema importieren 5mysql -u root -p nbcio_boot < db/nbcio-boot.sql
Notwendige Tabellenstruktur
Die Datenbank-Change-Log-Tabelle act_cmmn_databasechangelog verfolgt ausgeführte Migrationen mit MD5-Prüfsummen (db/nbcio-boot.sql:156-191). Dies ermöglicht Liquibase-basierte Schema-Evolution.
Die Einträge zeigen, dass Flowable CMMN-Tabellen durch Liquibase initialisiert wurden, mit Zeitstempeln vom April 2022. Jede Migration hat eine eindeutige ID, Autor und Prüfsumme zur Integritätsprüfung.
Wichtige Systemeinstellungen
Datei-Upload Limits
Die Anwendung unterstützt Datei-Uploads mit konfigurierten Größenbeschränkungen. Die maximale Dateigröße und Request-Größe sind auf 10MB begrenzt (nbcio-boot-module-system/src/main/resources/application-dev.yml:22-31).
yaml1spring: 2 servlet: 3 multipart: 4 max-file-size: 10MB 5 max-request-size: 10MB
Spring DevTools sind im Entwicklungsmodus aktiviert und ermöglichen Hot-Reload ohne Neustart (nbcio-boot-module-system/src/main/resources/application-dev.yml:22-31).
MyBatis Plus Konfiguration
MyBatis Plus ist als ORM-Framework konfiguriert mit Mapper-XML-Dateien unter org/jeecg/modules/**/xml/*Mapper.xml und com/nbcio/modules/**/xml/*Mapper.xml (nbcio-boot-module-system/src/main/resources/application-dev.yml:162-177).
Die Primärschlüssel-Strategie verwendet ASSIGN_ID für verteilte ID-Generierung. Tabellennamen folgen der Unterstrich-Notation (Snake-Case).
| Einstellung | Wert | Beschreibung |
|---|---|---|
| id-type | ASSIGN_ID | Verteilte ID-Generierung |
| table-underline | true | Snake-Case Tabellennamen |
| banner | false | Kein MyBatis Plus Banner |
Minimale Startanforderungen
Erforderliche Infrastruktur
Das System benötigt folgende Komponenten für einen erfolgreichen Start:
- MySQL 5.7+ — Datenbank mit Schema
nbcio-boot - Redis 5.0+ — Cache und Session-Speicher
- JDK 1.8+ — Java Runtime Environment
Schnellstart-Befehle
bash1# 1. Repository klonen 2git clone https://github.com/nbacheng/nbcio-boot.git 3cd nbcio-boot 4 5# 2. Datenbank vorbereiten (IP/Passwort anpassen) 6mysql -u root -p < db/nbcio-boot.sql 7 8# 3. Konfiguration anpassen 9# application-dev.yml: MySQL- und Redis-Verbindungsdaten ändern 10 11# 4. Anwendung starten 12mvn spring-boot:run -pl nbcio-boot-module-system
Hinweis: Die Standardkonfiguration verweist auf 192.168.199.151 für MySQL und Redis. Diese IP-Adressen müssen für die lokale Umgebung angepasst werden (nbcio-boot-module-system/src/main/resources/application-dev.yml:104-161).
Laufzeitverifikation
Service-Erreichbarkeit prüfen
Nach erfolgreichem Start ist die Anwendung unter folgender URL erreichbar:
http://localhost:8080/nbcio-boot/
Der Server-Port 8080 und Kontextpfad /nbcio-boot sind in der Entwicklungskonfiguration definiert (nbcio-boot-module-system/src/main/resources/application-dev.yml:1-14).
Druid-Monitoring aufrufen
Die Druid-Datenbanküberwachung ist verfügbar unter:
http://localhost:8080/nbcio-boot/druid/
Anmeldedaten: admin / 123456 (nbcio-boot-module-system/src/main/resources/application-dev.yml:104-148).
Actuator-Endpoints
Die Actuator-Schnittstelle stellt Metriken und HTTP-Trace bereit unter:
http://localhost:8080/nbcio-boot/actuator/metrics
http://localhost:8080/nbcio-boot/actuator/httptrace
Die Exposition dieser Endpoints ist in der Management-Konfiguration definiert (nbcio-boot-module-system/src/main/resources/application-dev.yml:16-20).
Häufige Probleme und Lösungen
Problem 1: Datenbankverbindungsfehler
Symptom: Anwendung startet nicht mit Communications link failure oder Access denied.
Ursache: Falsche MySQL-Verbindungsparameter oder Datenbank nicht vorhanden.
Lösung:
- MySQL-URL, Benutzername und Passwort in
application-dev.ymlprüfen (nbcio-boot-module-system/src/main/resources/application-dev.yml:139-141) - Datenbankexistenz verifizieren:
SHOW DATABASES LIKE 'nbcio-boot'; - Benutzerberechtigungen prüfen:
GRANT ALL ON nbcio_boot.* TO 'root'@'%';
Problem 2: Redis-Verbindungstimeout
Symptom: Fehlermeldung Unable to connect to Redis oder Timeouts beim Caching.
Ursache: Redis-Server nicht erreichbar oder falsches Passwort.
Lösung:
- Redis-Host und Port verifizieren (nbcio-boot-module-system/src/main/resources/application-dev.yml:152-161)
- Redis-Passwort in Konfiguration mit Server-Konfiguration abgleichen
- Redis-Verbindung testen:
redis-cli -h 192.168.199.151 -p 6379 -a masterredis ping
Problem 3: Port 8080 bereits belegt
Symptom: Port 8080 was already in use beim Start.
Ursache: Andere Anwendung nutzt denselben Port.
Lösung:
- Belegenden Prozess identifizieren:
netstat -tulpn | grep 8080(Linux) odernetstat -ano | findstr :8080(Windows) - Prozess beenden oder Server-Port in
application-dev.ymländern (nbcio-boot-module-system/src/main/resources/application-dev.yml:1-14)
Problem 4: Quartz-Tabellen nicht gefunden
Symptom: Table 'nbcio_boot.QRTZ_LOCKS' doesn't exist bei Scheduler-Initialisierung.
Ursache: Quartz-Tabellen nicht im Schema enthalten.
Lösung:
- Vollständiges SQL-Schema importieren (db/nbcio-boot.sql:111-330)
- Quartz-Konfiguration prüfen:
job-store-type: jdbc(nbcio-boot-module-system/src/main/resources/application-dev.yml:44-68)
Nächste Schritte
Nach erfolgreichem Start der Anwendung empfiehlt sich die Auseinandersetzung mit folgenden Themen:
- API-Dokumentation — Erkundung der verfügbaren REST-Endpoints über Swagger/OpenAPI (falls konfiguriert)
- Workflow-Konfiguration — Anpassung der Flowable-Prozessdefinitionen für spezifische Geschäftsprozesse
- Sicherheitseinstellungen — Überprüfung der Shiro-Konfiguration und Anpassung der Authentifizierungsregeln (nbcio-boot-module-system/src/main/resources/application-dev.yml:196-197)
- Datei-Upload-Speicher — Konfiguration des Upload-Verzeichnisses
/opt/upFilesan lokale Gegebenheiten anpassen (nbcio-boot-module-system/src/main/resources/application-dev.yml:191-195) - MinIO-Integration — Bei Verwendung von MinIO als Objektspeicher die entsprechenden Zugangsdaten konfigurieren
Für Produktionsumgebungen müssen zusätzlich folgende Aspekte adressiert werden:
- Änderung aller Standardpasswörter (Datenbank, Redis, Druid)
- Deaktivierung der DevTools (
spring.devtools.restart.enabled: false) - Anpassung der Signatur-Secrets für API-Sicherheit
- Konfiguration eines Reverse-Proxies mit TLS-Terminierung
