GithubHelp home page GithubHelp logo

water0126 / spring-fu Goto Github PK

View Code? Open in Web Editor NEW

This project forked from spring-projects-experimental/spring-fu

0.0 2.0 0.0 15.76 MB

Spring Fu is an incubator for new Spring features about Kotlin and functional bean registration. It introduces Kofu configuration for configuring Spring Boot in a functional way, Coroutines support, GraalVM native images support and various other features.

Home Page: https://spring.io/blog/2018/10/02/the-evolution-of-spring-fu

License: Apache License 2.0

Kotlin 79.04% Shell 0.43% Java 20.52% HTML 0.01%

spring-fu's Introduction

Spring Fu

Build Status

Spring Fu is an incubator for new Spring features about Kotlin and functional bean registration. Its main feature is an alternative way of configuring Spring Boot applications with Kotlin DSL and lambdas instead of annotations: Kofu (for Kotlin and functional) configuration. Other features like Coroutines or GraalVM support are also included.

A Java variant called Jafu (for Java and functional) is also available (just a POC for now).

It is not intended to be used in production, but rather to incubate and get feedback and contributions from the community in order to reach a point where its features can be integrated as part of existing Spring projects like Framework, Boot and Data. The table bellow summarize the status of current features.

Status

Feature Status Related issue

Kofu and Jafu configuration DSL

Incubating in Spring Fu

Slightly related: spring-boot#8115 To be created in Spring Boot issue tracker

Manually created in Spring Fu

Could be generated during Spring Boot build in the future

To be created in Spring Boot issue tracker

Incubating in Spring Fu

SPR-15413 kotlinx.coroutines#254 kotlinx.coroutines#284 To be created in Spring Data issue tracker for MongoDB and SQL support

Data classes support for configuration properties

Expected in Spring Boot 2.2 (to be confirmed)

Initial support done in Spring Framework 5.1

Work in progress on GraalVM side

Better Kotlin documentation

Not started yet

Pull-request to be contributed

Incubating in Spring Fu

Not started yet

Not started yet

Getting started

Via start.spring.io

  • Create a Spring 2.1.0.M4 project on start.spring.io,

  • Add the org.springframework.fu:spring-boot-kofu:0.0.3.BUILD-SNAPSHOT dependency

  • Use Kotlin 1.3.0-rc-57 available from http://dl.bintray.com/kotlin/kotlin-eap Maven repository.

  • Modify the generated *Application.kt file as following:

package com.example

import org.springframework.boot.kofu.application

val app = application {
	// ...
}

fun main(args: Array<String>) = app.run(args)

Via bootstraps

Bootstraps are zip archives containing minimal project templates designed to allow you getting started quickly and easily Spring Fu applications using a Gradle DSL build. To start a new project, download a bootstrap .zip archive, extract it and follow README.adoc instructions.

Samples

You can also have a look to the sample applications:

Credits

In addition to the whole Spring and Reactor teams, special credits to:

spring-fu's People

Contributors

alek-sys avatar alexczar avatar hauerio avatar irus avatar jnizet avatar kinmarui avatar ksvasan avatar malltshik avatar sdeleuze avatar t-kameyama avatar tgirard12 avatar

Watchers

 avatar  avatar

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.