17.與SpringBoot集成
使用(yòng)
URule Pro規則引擎與spring boot集成好的項目我們可(kě)以到 https://oss.sonatype.org 上下載,打開 https://oss.sonatype.org, 搜索關鍵字“urule-springboot”下載最新(xīn)的urule-springboot包即可(kě)。
下載好urule-springboot的jar包,将這個jar放在一個非中(zhōng)文(wén)目錄下,在我們系統的D盤下創建一個名(míng)為(wèi)repo目錄(用(yòng)于存儲規則相關文(wén)件),打開操作(zuò)系統命令行,切換到urule-springboot的jar包所在目錄,輸入如下命令即可(kě)運行這個spring boot項目:
java -jar urule-springboot-[version].jar
通過之前的章節介紹我們知道,URule Pro控制台在運行時需要指定資源庫存儲的目錄路徑或存儲到數據庫時的配置文(wén)件,對于這裏提供的urule-springboot包來說,默認情況下, 它采用(yòng)的是D盤的repo目錄下存儲資源庫,所以我們需要創建在啓動urule-springboot包前需要在D盤創建好repo目錄。
以上命令要求我們的系統當中(zhōng)已安(ān)裝(zhuāng)好1.8或以上版本的JDK,同時也已配置好JDK環境參數,否則執行上述命令将會報找到不命令關鍵字的錯誤。
啓動好後,打開浏覽器,輸入 http://localhost:8080/urule/frame,就可(kě)以看到URule Pro提供的控制台頁(yè)面。
URule Pro提供的spring boot集成包,采用(yòng)的是Tomcat,默認采用(yòng)的是8080端口号,如果需要更改,那麽可(kě)以在啓動命令後添加--server.port參數, 比如--server.port=80,這就表示采用(yòng)80端口,啓動後,直接浏覽http://localhost就可(kě)以看到URule控制台,就不需要再輸入端口号了,更多(duō)啓動參數可(kě)以到spring boot官網上查看。
二次開發
默認提供的URule Pro與spring boot集成的版本功能(néng)相對簡單,如果您需要URule Pro與spring boot集成的版本能(néng)實現在數據庫中(zhōng)存儲資源庫、為(wèi)URule控制台添加安(ān)全限制等,同時您又(yòu)熟悉spring boot, 那麽可(kě)以到https://gitee.com/youseries/urule/tree/master/urule-springboot上下載URule Pro與spring boot集成的項目源碼做二次開發即可(kě)。
這個項目比較簡單,除了與spring boot相關的一些配置外,在com.bstek.urule.springboot包中(zhōng)隻有(yǒu)兩個類。 Application類是spring boot啓動的入口類,在這個類中(zhōng),我們通過ImportResource這個annotation加載了URule Console Pro的spring配置文(wén)件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文(wén)件内容如下:
<?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>
從這個spring的xml配置文(wén)件中(zhōng)可(kě)以看到,裏面首先通過import标記加載URule Pro的Spring配置文(wén)件,然後加載位于classpath下的名(míng)為(wèi)configure.properties的屬性文(wén)件,我們如果需要配置其它的URule Pro中(zhōng)提供的屬性, 隻需要打開這個configure.properties文(wén)件,在其中(zhōng)添加相應的屬性即可(kě)。
URuleServletRegistration類中(zhōng)注冊了URuleServlet這個Servlet,這個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/*");
}
}
通過這個項目,我們可(kě)以了解到URule Pro與spring boot的集成方式,實際使用(yòng)時可(kě)以直接基于此項目源碼進行修改,也可(kě)以按照此項目的配置方式将URule Pro添加到一個正在使用(yòng)的spring boot項目當中(zhōng)。