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. 咱們定義的配置要如何讀出來?

淡定,後續文章將會對一些常見的問題展開說明。

相關文章
相關標籤/搜索