Anatomy of a Structr Application
Structr is a standalone Java application running in an embedded Jetty servlet engine.
This article is based on the Structr package from https://structr.org/download. For details on the installation of Structr, see Installation and Setup. A Java Development Kit (JDK) Version 8 or later is required to run it.
Please note: Structr makes use of the Java compiler at runtime, so *the JRE is not enough to run Structr, you will need the JDK in any case*. See also this FAQ.
Apart from the configuration and (optional) external Scripting, all parts of a custom Structr application are configuration data stored in a graph database. A typical Structr application consists of at least the following parts.
The data model of a Structr application can be designed visually with the Schema Editor. It is fully dynamic and can be modified and extended at runtime. The resulting Custom Types are compiled into Java classes, and Structr automatically creates a REST Resource for each type.
The business logic of a Structr application is stored in methods in the data model. Structr supports various Property Types and provides Callback Methods that are executed when an object of a certain type is created, modified or deleted. Additionally, Serverside Scripting can be used in almost any part of an application. See the chapter on Active Elements for more information on that.
Integration with existing systems often requires the implementation of technical interfaces, ranging from simple plain-text resources to sophisticated reports. Structr provides Virtual Types for input / output mapping of its data model to other models. See also Creating non-HTML output and Server APIs.
Let’s have a look at the files of a Structr installation. The following screenshot shows the directory contents of the Structr runtime directory after Structr has been started.
- The Structr Knowledge Graph
- About Structr
- Getting Started
- Installation and Setup
- Working with Structr
- Advanced Topics