Skip to content

aspectran/aspectran

Repository files navigation

Aspectran - Java application framework

Build Status Coverage Status Maven central Sonatype Nexus (Snapshots) javadoc License

asciicast

Aspectran is a framework for developing Java applications that can be used to build simple shell applications and large enterprise web applications.

The key features of Aspectran are:

  • Support POJO (Plain Old Java Object) programming model
    Developers do not need to know the heavy and complex objects used internally by the framework. They can exchange objects with the framework using simple Java classes.
  • Support Inversion of Control (IoC)
    What's more, the framework manages the creation and lifecycle of objects while controlling the overall flow, freeing developers to focus on their business logic.
  • Support Dependency Injection (DI)
    The framework systematically connects modules that depend on each other at runtime to ensure low coupling between modules and to increase code reusability.
  • Support Aspect-Oriented Programming (AOP)
    The framework combines additional features such as transactions, logging, security, and exception handling with code written by the developer at runtime.
  • Support building RESTful Web Services
    Aspectran is a framework designed from the ground up for REST API implementations and optimized for microservices architectures.
  • Fast development and startup time
    Aspectran's intuitive programming model guarantees fast development time and runs faster than other frameworks.
  • Create Aspectran-powered, production-grade applications
    You can create reliable, standalone Java applications that run on multiple operating systems, and even run them in servlet containers or embed them into other Java applications.

Aspectran-powered applications support the following execution environments on the JVM:

  • Consistent shell interface for command line applications
  • Runs as a background process on Unix-based or Windows operating systems
  • Built-in high performance web application server (Undertow, Jetty)
  • Can also be run as a servlet in a traditional servlet container like Apache Tomcat or WildFly

Aspectran consists of the following major packages:

  • com.aspectran.core
    Package containing the core features of Aspectran
  • com.aspectran.daemon
    Package for running Aspectran-based Java applications as background processes on Unix-based or Windows operating systems
  • com.aspectran.embed
    Package for embedding Aspectran in non-Aspectran-based Java applications
  • com.aspectran.shell
    Package for building interactive shell (aka command line) applications based on Aspectran
  • com.aspectran.shell-jline
    Package for building feature-rich Aspectran-based interactive shell applications leveraging JLine 3
  • com.aspectran.utils
    Miscellaneous utility classes used across multiple packages
  • com.aspectran.web
    Packages required to build Jakarta EE compatible web applications
  • com.aspectran.rss-lettuce
    Package containing a Redis session store implementation leveraging Lettuce as a client
  • com.aspectran.jetty
    Add-on package for using Jetty as the embedded servlet container
  • com.aspectran.undertow
    Add-on package for using Undertow as the embedded servlet container
  • com.aspectran.mybatis
    Add-on package for using the MyBatis SQL mapper framework that makes using relational databases easy
  • com.aspectran.freemarker
    Add-on package for using Freemarker as the templating engine
  • com.aspectran.pebble
    Add-on package for using Pebble as the templating engine

Building

Requirements

  • Maven 3.6.3+ (prefer included maven-wrapper)
  • Java 17+

Check out and build:

git clone git://github.com/aspectran/aspectran.git
cd aspectran
./build rebuild

Running the demo

To run the demo, simply use the following command after having build Aspectran

./build demo

Continuous Integration

Links

Thanks

JetBrains
JetBrains products are very helpful in developing Aspectran.
Thank you for the Open Source License!

License

Aspectran is Open Source software released under the Apache 2.0 license.