Solon详解(一)- 快速入门

Solon详解系列文章:
Solon详解(一)- 快速入门
Solon详解(二)- Solon的核心
Solon详解(三)- Solon的web开发html

1、Solon

最近号称小而美的的Solon框架,终于得空,搞了一把,发觉Solon确实好用,那Solon究竟是什么,又是怎么好用呢?java

什么是Solon?

Solon参考过Spring boot 和 Javalin 的设计。吸收了二者的的优势,避开了不少繁重的设计,使其支持http, websocket, socket 三种通信信号接入。Solon 2M便可支撑起普通的mvc开发了,0.1秒就能够完成启动;相对于言,Spring boot 的一个普通mvc项目,基本上20M起步,5秒左右完成启动。web

整体来讲,Solon 有着相似于 Spring boot的开发体验。数据库

Solon的优缺点

优势websocket

  1. 小巧美丽
  2. 快速构建项目
  3. 项目可独立运行,不须要外部的web容器(jar直接部署)
  4. 部署效率高

缺点mvc

  1. 文档不多
  2. 第三方项目的适配少(与Spring生态无法比)

2、快速入门

一、Solon的Java配置方式

使用Solon,能够零配置就让你的项目快速运行起来,彻底使用代码和注解取代配置。使用java代码方式能够更好的理解你配置的Bean,下面就先来看看两个最基本的注释:app

1)@XConfiguration 和 @XBean

Solon的java配置方式是经过@XConfiguration 和 @XBean这两个注释实现的:框架

  • @XConfiguration 做用于类上,对Bean进行配置
  • @XBean 用在类上,也能够做用在 @XConfiguration 类的方法上
2)示例

该示例将经过java配置方式配置Bean,实现Solon IOC功能。socket

下面是一个简单的模拟从数据库获取User数据的Dao类(使用了@XBean注解,说明它将交给Solon容器管理)。函数

@XBean 
public class UserDao {
    public List<String> queryUserList() {
        //为省事儿,此处不操做数据库
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add("User " + i);
        }
        return list;
    }
}

//也能够经过配置器构建Bean
//
//@XConfiguration
//public class SolonConfig {
//    @XBean
//    public UserDao getUserDao() {
//        return new UserDao();
//    }
//}

而后是一个最最多见的Service,经过注入UserDao,使用UserDao的方法获取用户数据。

@XBean
public class UserService {

    @XInject
    UserDao userDao;

    public void getUserList() {
        List<String> list = userDao.queryUserList();
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

}

接下来就是启动Solon的容器服务, 而后从容器中拿到UserService,并调用其获取用户数据的方法,代码以下:

public class Test {
    public static void main(String[] args) {
        //启动容器服务
        XApp.start(Test.class, args);
        
        //经过Aop对象获取Bean(或者注解方式)//能够用代码的方式获取托管bean
        //
        UserService userService = Aop.get(UserService.class);
        userService.getUserList();
    }
}

像普通的java程序同样,直接运行Test类中的main方法便可在控制台看到用户数据输出了。

应该能够发现了,以往的Spring boot 很像,又很不同。

二、第一个Web应用

经过上面的示例,咱们已经知道了Solon的java配置方式是怎么回事了,那接下来便正式开始使用Solon来开发咱们的第一个web应用了.

1)pom.xml配置

设置solon的parent

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

设置solon的parent配置不是必须的,但包含了大量默认的配置,可简化咱们的开发。

导入solon的web支持

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-web</artifactId>
    <type>pom</type>
</dependency>

经过上面简单的2步配置,Solon就配置完毕了,是至关简洁的呢?

2)小示例
@XController    //这标明是一个solon的控制器
public class HelloApp {
    public static void main(String[] args) {    //这是程序入口
        XApp.start(HelloApp.class, args);
    }

    @XMapping("/hello")
    public String hello(String name){
        return "Hello world!";
    }
}

Solon 程序的重点是要:在main函数的入口处,经过XApp.start(...) 启动Solon的容器服务,进而启动它的全部机能。

运行HelloApp中的main()方法,启动该web应用后,在地址栏输入"http://localhost:8080/hello",就能够看到输出结果了。

Hello world!

3、疑问

到这里是否是已经大概感受到了Solon的高效和简洁了?配置就是如此简单,功能就是如此强大,但经过上面一系列的讲解,是否是也会产生一些疑惑呢,好比:

  1. Solon启动的过程,都干了啥?
  2. WEB应用的默认端口就是8080,那这个端口要怎么修改呢?
  3. 咱们定义的配置要如何读出来?

淡定,后续文章将会对一些常见的问题展开说明。

相关文章
相关标签/搜索