ActiveJ : DI

ActiveJ has an extremely lightweight DI with ground-breaking design principles. It supports nested scopes, singletons, object factories, modules and plugins which allow to transform graph of dependencies at startup time without any reflection.

License

License

Categories

Categories

ActiveJ User Interface Web Frameworks
GroupId

GroupId

io.activej
ArtifactId

ArtifactId

activej-di
Last Version

Last Version

1.0-rc1
Release Date

Release Date

Type

Type

jar
Description

Description

ActiveJ : DI
ActiveJ has an extremely lightweight DI with ground-breaking design principles. It supports nested scopes, singletons, object factories, modules and plugins which allow to transform graph of dependencies at startup time without any reflection.

Download activej-di

How to add to project

<!-- https://jarcasting.com/artifacts/io.activej/activej-di/ -->
<dependency>
    <groupId>io.activej</groupId>
    <artifactId>activej-di</artifactId>
    <version>1.0-rc1</version>
</dependency>
// https://jarcasting.com/artifacts/io.activej/activej-di/
implementation 'io.activej:activej-di:1.0-rc1'
// https://jarcasting.com/artifacts/io.activej/activej-di/
implementation ("io.activej:activej-di:1.0-rc1")
'io.activej:activej-di:jar:1.0-rc1'
<dependency org="io.activej" name="activej-di" rev="1.0-rc1">
  <artifact name="activej-di" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.activej', module='activej-di', version='1.0-rc1')
)
libraryDependencies += "io.activej" % "activej-di" % "1.0-rc1"
[io.activej/activej-di "1.0-rc1"]

Dependencies

compile (2)

Group / Artifact Type Version
org.jetbrains : annotations jar 17.0.0
org.slf4j : slf4j-api jar 1.7.29

test (3)

Group / Artifact Type Version
junit : junit jar 4.12
ch.qos.logback : logback-classic jar 1.2.3
org.jmock : jmock-junit4 jar 2.8.1

Project Modules

There are no modules declared in this project.

Maven Central GitHub

Introduction

ActiveJ is a fully-featured alternative Java platform built from the ground up as a replacement of Spring, Spark, Quarkus, Micronauts, and other solutions. It is minimalistic, boilerplate-free, and incomparably faster, which is proven by benchmarks. ActiveJ has very few third-party dependencies, yet features a full stack of technologies with an efficient async programming model and a powerful DI library ActiveInject

Quick start

Insert this snippet to your terminal...

mvn archetype:generate -DarchetypeGroupId=io.activej -DarchetypeArtifactId=archetype-http -DarchetypeVersion=3.0.1

... and open the project in your favourite IDE. Then, build the application and run it. Open your browser on localhost:8080 to see the "Hello World" message.

Fully-featured embedded web application server with Dependency Injection:

public final class HttpHelloWorldExample extends HttpServerLauncher { 
    @Provides
    AsyncServlet servlet() { 
        return request -> HttpResponse.ok200().withPlainText("Hello, World!");
    }

    public static void main(String[] args) throws Exception {
        Launcher launcher = new HttpHelloWorldExample();
        launcher.launch(args); 
    }
}

Some technical details regarding the above example:

  • Features a JAR file size of only 1.4 MB. In comparison, a minimal Spring web app size is approximately 17 MB.
  • The cold start time is 0.65 sec.
  • The ActiveInject DI library which is used, is 5.5 times faster than Guice and hundreds of times faster than Spring.

To learn more about ActiveJ, please visit https://activej.io or follow our 5-minute getting-started guide.

Repository Structure

This repository contains the ActiveJ platform components along with helper ActiveJ libraries:

Examples for usage of the ActiveJ platform and all the ActiveJ libraries can be found in examples module.

io.activej

ActiveJ LLC

Versions

Version
1.0-rc1