PlatformWebRuntime
PlatformWebRuntime is the runtime application shell of the Geelato web platform. It is the runnable entry that boots the shared geelato-web-platform base for business-execution scenarios.
What It Is
PlatformWebRuntime is a Spring Boot main class:
- package:
cn.geelato.web.runtime - class:
cn.geelato.web.runtime.PlatformWebRuntime - main class:
cn.geelato.web.runtime.PlatformWebRuntime - declared in module:
geelato-web-runtime
The full source is:
@SpringBootApplication(scanBasePackages = {"cn.geelato"})
@EnableConfigurationProperties
@EnableCaching
@EnableAsync(proxyTargetClass = true)
public class PlatformWebRuntime extends BootApplication {
public static void main(String[] args) {
SpringApplication.run(PlatformWebRuntime.class, args);
}
}
It extends cn.geelato.web.platform.boot.BootApplication, which is the shared Geelato runtime bootstrap coordinator (see Startup Process for the full chain).
Module Coordinates
| Item | Value |
|---|---|
Maven artifactId | geelato-web-runtime |
| Module path | geelato-community/geelato-web-runtime |
| Packaging | jar |
spring-boot-maven-plugin mainClass | cn.geelato.web.runtime.PlatformWebRuntime |
spring-boot-maven-plugin classifier | exec |
| Direct dependencies | geelato-web-platform, spring-boot-starter-test (test scope) |
The module deliberately has only one direct dependency (geelato-web-platform). All platform capabilities come transitively from the shared base.
Default Configuration
geelato-web-runtime/src/main/resources/application.properties:
spring.application.name=geelato-web-runtime
logging.level.root=INFO
logging.level.cn.geelato=INFO
The shell currently overrides only the application name and log levels. All other settings (datasource, upload, security, plugin directory, etc.) come from the shared base or the host project that consumes this shell.
What It Provides
When the shell starts, it brings up everything the shared base declares, including:
- the
geelato-web-platformcontrollers and services - the default
BootApplicationstartup chain (datasource, SQL/Graal scripts, environment cache) - the framework starter wiring (
geelato-framework-starter) - the metadata loading layer (
geelato-meta) - the plugin runtime (
pf4j+geelato-plugins/geelato-plugin-all) - the OSS, package, security, and Redis integrations declared by the shared base
It enables Spring caching and async execution with CGLIB proxying (@EnableAsync(proxyTargetClass = true)) and exposes @ConfigurationProperties beans.
Relationship with BootApplication
PlatformWebRuntime does not duplicate any startup work. It only sets the cn.geelato scan base and enables caching, async, and configuration properties. The actual startup work happens in BootApplication.run(...):
DataSourceManager.parseDataSourceMeta(dao)- SQL / DB script loading (exploded mode or fat-jar mode)
- Graal service and variable scanning
EnvManager.EnvInit()
See Startup Process for details.
How to Run
mvn -pl geelato-web-runtime spring-boot:run
or build the runnable jar:
mvn -pl geelato-web-runtime clean package
java -jar geelato-web-runtime/target/geelato-web-runtime-1.0.0-SNAPSHOT-exec.jar
Relationship with PlatformDesginer
PlatformWebRuntime and PlatformDesginer are structurally identical shells. They:
- both extend
BootApplication - both depend only on
geelato-web-platform - both have the same Spring annotations
- differ only in
spring.application.nameand the main class FQN
There is no code-level "switch" between runtime and designer mode. The two jars are two independent deployable entry points. A host project picks one of them as its main class. Splitting endpoint surface between the two is not yet part of the shared base; both shells currently expose the full endpoint set from geelato-web-platform.