SpringBoot中使用JFinal的ActiveRecordPlugin插件

在寫分享前先看了看jfinal-3.3的文檔章節(jié):5.13 任意環(huán)境下使用 ActiveRecordActiveRecordPlugin 可以獨(dú)立于 java web 環(huán)境運(yùn)行在任何普通的 java 程序中俏拱,使用方式極度簡單晤斩,相對于 web 項(xiàng)目只需要手動(dòng)調(diào)用一下其 start() 方法即可立即使用闯狱。

以下是代碼示例:
public class ActiveRecordTest{
   public static void main(String[] args){
       DruidPlugin dp=new DruidPlugin("localhost","userName","password");
       ActiveRecordPlugin arp=new ActiveRecordPlugin(dp);
       arp.addMapping("blog",Blog.class);
       // 與web環(huán)境唯一的不同是要手動(dòng)調(diào)用一次相關(guān)插件的start()方法
       dp.start();
       arp.start();
       // 通過上面簡單的幾行代碼书劝,即可立即開始使用
      newBlog().set("title","title").set("content","cxt text").save();
       Blog.dao.findById(123);
   }
}

注意:ActiveRecordPlugin 所依賴的其它插件也必須手動(dòng)調(diào)用一下 start()方法缭受,如上例中的dp.start()

下面進(jìn)入正題:

創(chuàng)建一個(gè)插件類

ActiveRecordPluginConfig類
package com.choxsu.elastic.config;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.wall.WallFilter;
import com.choxsu.elastic.entity._MappingKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.template.source.ClassPathSourceFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.sql.Connection;
/**
 * @author chox su
 * @date 2017/11/29 10:16
 */
 @Configuration
 public class ActiveRecordPluginConfig{
    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Value("${spring.datasource.url}")
    private String url;

    @Bean
    public ActiveRecordPlug ininitActiveRecordPlugin(){
        DruidPlugindruidPlugin=newDruidPlugin(url,username,password);
        // 加強(qiáng)數(shù)據(jù)庫安全
        WallFilterwallFilter=newWallFilter();
        wallFilter.setDbType("mysql");
        druidPlugin.addFilter(wallFilter);
        // 添加 StatFilter 才會有統(tǒng)計(jì)數(shù)據(jù)
        // druidPlugin.addFilter(new StatFilter());
        // 必須手動(dòng)調(diào)用start
        druidPlugin.start();
        ActiveRecordPlugin arp=new ActiveRecordPlugin(druidPlugin);
        arp.setTransactionLevel(Connection.TRANSACTION_READ_COMMITTED);
        _MappingKit.mapping(arp);
        arp.setShowSql(false);
        arp.getEngine().setSourceFactory(new ClassPathSourceFactory());
        arp.addSqlTemplate("/sql/all_sqls.sql");
        // 必須手動(dòng)調(diào)用start
        arp.start();
        return arp;
    }
}

application.yml配置文件
server:
  port: 1013
spring:
  application:
    name: name:elastic
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://192.168.3.44:3306/jfinal_club?characterEncoding=utf8&useSSL=false
pom.xml配置文件
<dependency>
  <groupId>com.zgxl.market</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.0.0</version>
</dependency>

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.42</version>
</dependency>

<dependency>
  <groupId>com.jfinal</groupId>
  <artifactId>jfinal</artifactId>
  <version>3.3</version>
</dependency>

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>3.3</version>
</dependency>

主要用到的是上面這幾個(gè)maven dependency

目錄結(jié)構(gòu)
image
測試效果

Controller類方法定義

Controller類方法定義

swagger接口測試

swagger接口測試
swagger接口測試

sql管理功能這里沒貼上來,但我已經(jīng)測試通過了鱼响,springboot打包成jar啟動(dòng)可以找到sql路徑石咬,之前我是使用PathKit.getRootPath這種方式,這種方式打包成jar后就找不到路徑糜工;按照ActiveRecordPluginConfig類配置即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弊添,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捌木,更是在濱河造成了極大的恐慌油坝,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钮莲,死亡現(xiàn)場離奇詭異免钻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)崔拥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門极舔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人链瓦,你說我怎么就攤上這事拆魏《㈣耄” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵渤刃,是天一觀的道長拥峦。 經(jīng)常有香客問我,道長卖子,這世上最難降的妖魔是什么略号? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮洋闽,結(jié)果婚禮上玄柠,老公的妹妹穿的比我還像新娘。我一直安慰自己诫舅,他們只是感情好羽利,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刊懈,像睡著了一般这弧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上虚汛,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天匾浪,我揣著相機(jī)與錄音,去河邊找鬼泽疆。 笑死户矢,一個(gè)胖子當(dāng)著我的面吹牛玲献,可吹牛的內(nèi)容都是我干的殉疼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼捌年,長吁一口氣:“原來是場噩夢啊……” “哼瓢娜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起礼预,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤眠砾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后托酸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體褒颈,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年励堡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谷丸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡应结,死狀恐怖刨疼,靈堂內(nèi)的尸體忽然破棺而出泉唁,到底是詐尸還是另有隱情,我是刑警寧澤揩慕,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布亭畜,位于F島的核電站,受9級特大地震影響迎卤,放射性物質(zhì)發(fā)生泄漏拴鸵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一蜗搔、第九天 我趴在偏房一處隱蔽的房頂上張望宝踪。 院中可真熱鬧,春花似錦碍扔、人聲如沸瘩燥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厉膀。三九已至,卻和暖如春二拐,著一層夾襖步出監(jiān)牢的瞬間服鹅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工百新, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留企软,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓饭望,卻偏偏與公主長得像仗哨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子铅辞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容