Skip to content

matsior/summer-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Summer Framework

Java framework inspired by Spring Framework.

Getting started

Quick start

Starting application

import io.github.matsior.summerframework.core.Context;
import io.github.matsior.summerframework.core.SummerApplication;

public class MyApplication {

  public static void main(String[] args) {
    SummerApplication.start(MyApplication.class);
  }

}

Dependency Injection

  • By constructor:
import io.github.matsior.summerframework.core.Autowired;
import io.github.matsior.summerframework.core.Seed;

@Seed
class MyService {

  private MySecondService mySecondService;

  @Autowired
  MyService(MySecondService mySecondService) {
    this.mySecondService = mySecondService;
  }

}

@Seed
class MySecondService {

}
  • By setters:
import io.github.matsior.summerframework.core.Autowired;
import io.github.matsior.summerframework.core.Seed;

@Seed
class MyService {

  private MySecondService mySecondService;

  @Autowired
  void setMySecondService(MySecondService mySecondService) {
    this.mySecondService = mySecondService;
  }

}

@Seed
class MySecondService {

}
  • By fields:
import io.github.matsior.summerframework.core.Autowired;
import io.github.matsior.summerframework.core.Seed;

@Seed
class MyService {

  @Autowired
  private MySecondService mySecondService;

}

@Seed
class MySecondService {

}

Retrieving Seed from Context:

import io.github.matsior.summerframework.core.Context;
import io.github.matsior.summerframework.core.SummerApplication;

public class MyApplication {

  public static void main(String[] args) {
    Context context = SummerApplication.start(MyApplication.class);
    MyService myService = context.getSeedHolder().getSeed(MyService.class);
  }

}

Vocabulary

  • Seed - TBD
  • Context - TBD

Features

TBD

Roadmap

Must have

  • Dependency injection
  • Artifact in remote repository
  • External properties support
  • Http server
  • Http client

Should have

  • Documentation generated from Java Docs
  • SQL client

Could have

  • Pipeline for automatic deployment

Won't have

Future releases

v0.0.1

Planned date: 2024.03.29 DELAYED
Package should be deployed on remote artifact repository and ready to use with Maven based projects along with dependency injection functionality.

v0.0.2

Planned date: 2024.04.26
HTTP server should be available.

v0.0.3

Planned date: 2024.05.24
External properties support and HTTP client should be available.

FAQ

Why?
Inspired by https://100commitow.pl/.
Attempt to implement something different from everyday business code.
Learn how Spring Framework internally works.
Learn what problems could appear during libraries implementation and how to face them.

What Summer Framework is?
Java framework to fasten implementation process by reducing boilerplate code.

What Summer Framework is not?
Production solution.
Spring Framework replacement.

Sources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages