Skip to content

Latest commit

 

History

History
160 lines (132 loc) · 6.64 KB

README_EN.md

File metadata and controls

160 lines (132 loc) · 6.64 KB


Solon v2.2.15

Java new ecological application development framework, smaller, faster, simpler!

https://solon.noear.org

Maven Apache 2 jdk-8 jdk-11 jdk-17 jdk-20
gitee star github star


Language: English | 中文 | Русский | 日本語

Startup is 5 to 10 times faster; QPS is 2 to 3 times higher; runtime memory is saved by 1/3 to 1/2; packaging can be reduced to 1/2 to 1/10


Introduction:

Build from scratch. It has its own standards and norms and open ecology. Combination of different ecological plug-ins to meet different needs, convenient customization, rapid development:

  • Restraint, simplicity, efficiency, openness and ecology
  • Supports JDK8, JDK11, JDK17, JDK20
  • Http, WebSocket, Socket three signal unified development experience (commonly known as: three-source integration)
  • Supports "annotation" and "manual" modes, freely controlled as needed
  • Not Servlet, can adapt to any basic communication framework (minimum 0.3m running rpc architecture)
  • Homemade IOC/AOP container
  • Supports Web, Data, Job, Remoting, Cloud, and other development scenarios
  • The two architecture modes are Handler + Context and Listener + Message
  • Emphasizes plug-in extensibility, expandable and swappable, adaptable to different application scenarios
  • Allows business plug-ins for "hot plugging" and "hot unloading"
  • Supports GraalVm Native packaging

Ecosystem Architecture Diagram:

Hello World:

<parent>
    <groupId>org.noear</groupId>
    <artifactId>solon-parent</artifactId>
    <version>2.2.15</version>   
</parent>

<dependencies>
    <dependency>
        <groupId>org.noear</groupId>
        <artifactId>solon-web</artifactId>
    </dependency>
</dependencies>
@SolonMain
public class App{
    public static void main(String[] args){
        Solon.start(App.class, args, app->{
            //Handler mode:
            app.get("/hello",(c)->c.output("Hello world!"));
        });
    }
}

//Controller mode: (mvc or rest-api)
@Controller
public class HelloController{
    //Limit Socket method type
    @Socket
    @Mapping("/mvc/hello")
    public String hello(String name){
        return "Hello " + name;
    }
}

//Remoting mode: (rpc)
@Mapping("/rpc/")
@Remoting
public class HelloServiceImpl implements HelloService{
    @Override
    public String hello(){
        return "Hello world!";
    }
}

Main framework and quick integration development packages:

Main framework:
Component Package Description
org.noear:solon-parent Dependency version management
org.noear:solon Main framework
org.noear:nami Companion framework (as solon remoting's client)
Quick integration development packages and relationships:
Component Package Description
org.noear:solon-lib Quick development basic integration package
org.noear:solon-api solon-lib + jlhttp boot;quick development of API applications
org.noear:solon-web solon-api + freemarker + sessionstate;quick development of WEB applications
org.noear:solon-beetl-web solon-api + beetl + beetlsql + sessionstate;quick development of WEB applications
org.noear:solon-enjoy-web solon-api + enjoy + arp + sessionstate;quick development of WEB applications
org.noear:solon-rpc solon-api + nami;quick development of RPC applications
org.noear:solon-cloud solon-rpc + consul;quick development of microservices applications

Official website and related examples:

Special thanks to JetBrains for supporting open-source projects:

JetBrains