17.與SpringBoot集成

使用

URule Pro規則引擎與spring boot集成好的項目我們可(kě)以到 https://oss.sonatype.org 上(shàng)下載,打開(kāi) https://oss.sonatype.org, 搜索關鍵字“urule-springboot”下載最新的urule-springboot包即可(kě)。

下載好urule-springboot的jar包,将這個(gè)jar放在一個(gè)非中文目錄下,在我們系統的D盤下創建一個(gè)名為(wèi)repo目錄(用于存儲規則相關文件),打開(kāi)操作(zuò)系統命令行(xíng),切換到urule-springboot的jar包所在目錄,輸入如下命令即可(kě)運行(xíng)這個(gè)spring boot項目:

java -jar urule-springboot-[version].jar

通(tōng)過之前的章節介紹我們知道(dào),URule Pro控制(zhì)台在運行(xíng)時(shí)需要指定資源庫存儲的目錄路徑或存儲到數(shù)據庫時(shí)的配置文件,對于這裏提供的urule-springboot包來(lái)說,默認情況下, 它采用的是D盤的repo目錄下存儲資源庫,所以我們需要創建在啓動urule-springboot包前需要在D盤創建好repo目錄。

以上(shàng)命令要求我們的系統當中已安裝好1.8或以上(shàng)版本的JDK,同時(shí)也已配置好JDK環境參數(shù),否則執行(xíng)上(shàng)述命令将會(huì)報找到不命令關鍵字的錯誤。

啓動好後,打開(kāi)浏覽器(qì),輸入 http://localhost:8080/urule/frame,就可(kě)以看到URule Pro提供的控制(zhì)台頁面。

URule Pro提供的spring boot集成包,采用的是Tomcat,默認采用的是8080端口号,如果需要更改,那(nà)麽可(kě)以在啓動命令後添加--server.port參數(shù), 比如--server.port=80,這就表示采用80端口,啓動後,直接浏覽http://localhost就可(kě)以看到URule控制(zhì)台,就不需要再輸入端口号了,更多(duō)啓動參數(shù)可(kě)以到spring boot官網上(shàng)查看。

二次開(kāi)發

默認提供的URule Pro與spring boot集成的版本功能相對簡單,如果您需要URule Pro與spring boot集成的版本能實現在數(shù)據庫中存儲資源庫、為(wèi)URule控制(zhì)台添加安全限制(zhì)等,同時(shí)您又熟悉spring boot, 那(nà)麽可(kě)以到https://gitee.com/youseries/urule/tree/master/urule-springboot上(shàng)下載URule Pro與spring boot集成的項目源碼做(zuò)二次開(kāi)發即可(kě)。

這個(gè)項目比較簡單,除了與spring boot相關的一些(xiē)配置外,在com.bstek.urule.springboot包中隻有(yǒu)兩個(gè)類。 Application類是spring boot啓動的入口類,在這個(gè)類中,我們通(tōng)過ImportResource這個(gè)annotation加載了URule Console Pro的spring配置文件classpath:urule-console-context.xml,如下源碼所示:

package com.bstek.urule.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
/**
 * @author Jacky.gao
 * @since 2016年10月12日
 */
@SpringBootApplication
@ImportResource({"classpath:context.xml"})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

這裏加載的位于classpath下的context.xml文件內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    ">
    <import resource="classpath:urule-console-context.xml"/>
    <context:property-placeholder ignore-unresolvable="true" order="2" location="classpath:configure.properties"/>
</beans>

從這個(gè)spring的xml配置文件中可(kě)以看到,裏面首先通(tōng)過import标記加載URule Pro的Spring配置文件,然後加載位于classpath下的名為(wèi)configure.properties的屬性文件,我們如果需要配置其它的URule Pro中提供的屬性, 隻需要打開(kāi)這個(gè)configure.properties文件,在其中添加相應的屬性即可(kě)。

URuleServletRegistration類中注冊了URuleServlet這個(gè)Servlet,這個(gè)Servlet是URule Console Pro入口,所以必須要注冊,URuleServletRegistration類源碼如下:

package com.bstek.urule.springboot;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import com.bstek.urule.console.servlet.URuleServlet;
/**
 * @author Jacky.gao
 * @since 2016年10月12日
 */
@Component
public class URuleServletRegistration {
    @Bean
    public ServletRegistrationBean registerURuleServlet(){
        return new ServletRegistrationBean(new URuleServlet(),"/urule/*");
    }
}

通(tōng)過這個(gè)項目,我們可(kě)以了解到URule Pro與spring boot的集成方式,實際使用時(shí)可(kě)以直接基于此項目源碼進行(xíng)修改,也可(kě)以按照此項目的配置方式将URule Pro添加到一個(gè)正在使用的spring boot項目當中。

results matching ""

    No results matching ""