Giter Site home page Giter Site logo

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 with JLine 3
  • com.aspectran.utils
    Miscellaneous utility classes used across multiple packages
  • com.aspectran.web
    Package for building web applications using Jakarta EE
  • com.aspectran.rss-lettuce
    Package containing a Redis session store implementation using 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.

The Aspectran Project's Projects

aspectow icon aspectow

Full support for the servlet specification and ideal for building enterprise web applications

aspectow-jetty icon aspectow-jetty

Full support for the servlet specification and ideal for building enterprise web applications

aspectow-light icon aspectow-light

Lightweight version that does not support the servlet specification and is suitable for building high performance REST API services

aspectran icon aspectran

Aspectran is a lightweight framework for building high-performance Java applications.

demo-app icon demo-app

This site is a collection of reference applications created to show how to develop Aspectran applications following the recommended best practices.

demo-site icon demo-site

Aspectran Demo Site deployed on Google App Engine.

dev-test icon dev-test

Here's a glimpse of some of the traces we've come up with to make Aspectran.

log-relay icon log-relay

A web application that tails log files on the server and provides an integrated view in real time.

skylark icon skylark

Skylark is a text to speech program that converts any written text into spoken words.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.