JeeWeb Çevik Geliştirme Platformu

Giriş

JeeWeb, SpringBoot 2 + Spring + Mybatis + Hibernate'e dayalı çevik bir geliştirme sistemidir; kod oluşturma işlevine sahip akıllı bir hızlı geliştirme platformudur; Spring Framework çekirdek kapsayıcıdır, Spring MVC model görünüm denetleyicisidir ve Hibernate Veri erişim katmanında Apache Shiro, yetki yetkilendirme katmanıdır, Ehcahe yaygın olarak kullanılan verileri önbelleğe alır, Disruptor eşzamanlılık çerçevesidir ve Bootstrap, ön uç çerçevesi için mükemmel bir açık kaynak sistemidir.

JeeWeb tamamen açık kaynak kodlu bir geliştirme platformudur.Özel kod üretme modülü ayrıca açık kaynaklı bir modeli benimser.Geliştiriciler, projeler, öğrenme veya özel faaliyetler için kendi ihtiyaçlarına göre daha uygun bir kod oluşturucuyu dönüştürebilir. En iyi partneriniz

JeeWeb esas olarak kurumsal hızlı geliştirme platformunun yapımında konumlanmıştır. Yerleşik birçok mükemmel temel işlev ve verimli kod oluşturma araçlarına sahiptir: sistem izni bileşeni, veri izni bileşeni, veri sözlüğü bileşeni, temel araç bileşeni, görüntüleme işlemi bileşeni, kod oluşturma, UI Şablon etiket kitaplığı vb. Ön uç arayüz stili, basit yapı, mükemmel performans ve güzel sayfalarla Twitter Önyükleme sayfası görüntüleme çerçevesini benimser. Hiyerarşik tasarımı benimseyin, veri güvenliği kodlamasını gönderin, parola şifrelemesi, erişim doğrulaması, veri yetkisi doğrulaması. Projenin geliştirme kolaylığını ve ölçeklenebilirliğini artırmak için proje yönetimi için Maven'i kullanın.

Mevcut işlevsel modül kod üreteci, izin çerçevesi, veri sözlüğü, veri önbelleği, eşzamanlılık çerçevesi, veri izleme, zamanlanmış görevler, çoklu veri kaynağı yönetimi, ek yönetimi, mybatis'e benzer dinamik SQL, UI şablon etiketleri, SMS gönderme, e-posta gönderme, istatistiksel işlevler Ve diğer işlevler.

JeeWeb'in geliştirme yöntemi benimser (kod üreteci hızlı bir şekilde kod tasarlamak ve üretmek için) > El ile mükemmel mantık > Hızlı ön uç geliştirme için zengin şablon etiketleri), java geliştiricilerin tekrar eden görevlerin% 60'ını çözmelerine yardımcı olabilir ve geliştiricilerin iş mantığının gerçekleştirilmesine daha fazla dikkat etmelerine olanak tanır.Çerçeve, JAVA geliştiricilerinin geliştirme baskısını serbest bırakmak ve geliştirme verimliliğini artırmak için ön uç şablon etiketlerini kullanır. İşletmeler için proje araştırma ve geliştirme maliyetlerinden tasarruf edin ve geliştirme döngülerini azaltın.

Arka plan çerçevesi gösterimi (iki ön uç stili arasında ücretsiz geçişi destekler)

Forum sunumu

Ön ve arka ayrımın gösterilmesi

JeeWeb teknik özellikleri

JeeWeb, SpringBoot, Mybatis, Hibernate, Apache Shiro, Disruptor, ehcache, Jquery, BootStrap vb. Gibi mevcut süreç WEB geliştirme mimarisi teknolojisini kullanır ve birden çok veritabanını MySQL, Oracle, sqlserver vb. Destekler. Katmanlı tasarım: Açık katmanlar, düşük bağlantı ve yüksek uyum ile dao, servis, Denetleyici ve görünüm katmanlarına bölünmüş katmanlı tasarım kullanın.

Güvenlik hususları: Web güvenliği spesifikasyonlarını, ön ve arka çift doğrulamayı, parametre kodlama iletimini, şifre md5 şifreli depolamayı, shiro yetkilendirme doğrulamasını sıkı bir şekilde izleyin ve SQL enjeksiyonu, XSS saldırıları, CSRF saldırıları ve diğer yaygın web saldırı yöntemlerinden temelde kaçının.

JeeWeb özellikleri

  • SpringBoot + Spring + Mybatis + Hibernate + Shiro + Ehcache + Disruptor + Jquery + Boostrap + Ztree ve diğer temel ön uç ve arka uç mimarisi
  • İfade odaklı bir geliştirme modeli kullanarak, karmaşık veri görüntüleme, veri düzenleme, form işleme ve diğer işlevler, jeneriklere dayalı çok az kod yazarak gerçekleştirilebilir.Kod üreteci kullanmadan çok az kodla gerçekleştirilebilir. Çevrimiçi geliştirme ve kod oluşturucuların kullanımıyla birlikte temel CURD işlemi, geliştirme sürecini daha da hızlandırır, J2EE geliştirmenin verimliliğini ve maliyetini artırır ve kodu% 60'tan fazla azaltabilir.
  • Çevrimiçi geliştirme (bir kod satırı olmadan çevrimiçi yapılandırma yoluyla bir tablo modelini eklemek, silmek, değiştirmek ve kontrol etmek için kullanıcı tanımlı form düzenini destekleyin)
  • Kod oluşturucu, birden fazla veri modelini destekleyin, ilgili Varlık, Hizmet, Dao, Denetleyici, JSP vb. Oluşturun, tabloya göre ekleyin, silin, değiştirin ve doğrudan oluşturmak ve kullanmak için işlevi kontrol edin
  • UI etiketi geliştirme kitaplığı, ön uç kullanıcı arabirimi için standart kapsülleme tablosu, işlevlere ulaşmak için sayfa için birleşik kullanıcı arabirimi etiketleri: JSP sayfaları için sıfır JS elde etmek için veri kutusu, ağaç ızgarası, Dosya Giriş, Düzenleyici, GridSelect vb., Basit ve verimli geliştirme ve bakım
  • Sorgu filtresi: Yalnızca ön uç yapılandırması gereklidir ve arka uç, sorgu koşullarını eklemek için SQL'i dinamik olarak heceler; birden çok eşleme yöntemini destekler (tam eşleme / bulanık sorgu / sorgu dahil etme / eşleşmeyen sorgu)
  • Mobil platform desteği, Bootstrap için standart paketleme (Html5 ile uyumlu)
  • Sayfaya veya düğmeye kontrol edilebilen esnek izin kontrolü, izin gereksinimlerinin çoğunu karşılar ve izin yapılandırmasını kolaylaştırmak için izin notlarını optimize eder
  • XSS saldırılarını tamamen ortadan kaldırmak için mükemmel XSS önleme ve komut dosyası filtreleme
  • Dağıtılmış dağıtımı destekleyin, oturum redis'te saklanır
  • Kullanıcı dostu kod yapısı ve yorumları, okunması kolay ve ikincil geliştirme
  • Ekleme, değiştirme, silme, askıya alma, geri yükleme ve günlük görüntüleme işlevleri gibi görevleri dinamik olarak tamamlayabilen kuvars zamanlama görevlerini tanıtın
  • API arayüz belgelerinin yazılmasını kolaylaştırmak için havalı belge desteğini tanıtın
  • Uluslararasılaştırma (çoklu dil desteği ve uluslararası paketleme, birden çok dil için uygun destek sağlar)
  • Birden çok veri kaynağı (çevrimiçi yapılandırma veri kaynağı, veri kaynağı işçi sınıfı kapsülleme)
  • Veri izinleri: entegre Shiro izinleri
  • Zamanlanmış görev kontrolü (zamanlanmış görevlerin çevrimiçi konfigürasyonu, zamanlanmış görevler için uygun zaman ayarlama planlaması)
  • Posta gönderme (yapılandırma postası şablonu, posta hesabının çevrimiçi yapılandırması, eşzamansız posta gönderme, posta gönderme günlük işlevi istatistikleri)
  • SMS gönderme (SMS şablonunun yapılandırılması, SMS hesabının çevrimiçi yapılandırması, eşzamansız SMS gönderimi, SMS gönderme günlük işlevi istatistikleri, SMS gönderme platformunun dinamik geçişi desteği)
  • Çeşitli ana sayfa stili değiştirme, özel ana sayfa stilini destekler. (Inspinia tarzı | ACE stili)
  • Veri istatistikleri raporu: zengin rapor istatistikleri işlevi
  • Birden çok tarayıcıyı destekleyin: Google, Firefox, IE, 360 vb.
  • Destek veritabanı: Mysql, Oracle10g, SqlServer, vb.
  • Temel izinler: kullanıcılar, roller, menü izinleri
  • Web konteyneri testi Jetty, Tomcat, Weblogic'i geçti
  • JDK1.8 + gerektirir

Teknik seçim

1. Arka uç

  • Çekirdek çerçeve: Spring boot2.0, Spring Framework
  • Güvenlik Çerçevesi: Apache Shiro
  • Sunucu tarafı doğrulama: Hazırda Bekletme Doğrulayıcısı
  • Şablon Etiketi: Beetl
  • Görev planlaması: Kuvars
  • Kalıcılık çerçevesi: Hazırda bekletme
  • Veritabanı bağlantı havuzu: Alibaba Druid
  • Önbellek çerçevesi: Redis, Ehcache
  • Eşzamanlılık çerçevesi: Bozucu
  • Günlük yönetimi: SLF4J, Log4j
  • Araçlar: Apache Commons, Jackson, Xstream,

2. Ön uç

  • JS çerçevesi: jQuery.
  • CSS çerçevesi: Twitter Önyükleme
  • İstemci doğrulaması: Validform.
  • Zengin metin çevrimiçi düzenleme: markdown, simditor, Summernote, CodeMirror arasında ücretsiz geçiş
  • Dosya yükleme aracı: Bootstrap fileinput
  • Veri tablosu: jqGrid
  • İletişim kutusu: katman
  • Ağaç yapısı kontrolü: jQuery zTree
  • Tarih kontrolü: tarih seçici
  • Kod vurgulama: syntaxhighlighter

Basit talimatlar

  • Jeeweb dizini altındaki belirli modül sql / mysql.sql dosyasını mysql veritabanına aktarın
  • Projeyi Idea'ya aktarın (proje şu anda alt modüller ile geliştirilmektedir, geliştirmek için IDEA kullanmanızı öneririz).
  • Application.yml veritabanı yapılandırma dosyasında hesap parolasını değiştirin.
  • Projeyi başlatın, yönetici hesabı yönetici / şifre 123456

Platform dizin yapısı açıklaması

jeeweb jeeweb-ortak modül jeeweb-common-base ortak temel modülü jeeweb-common-email temel posta modülü jeeweb-common-hibernatemvc hazırda bekleme ortak modülü jeeweb-common-mybatismvc mybatis ortak modülü jeeweb-common-oss veri depolama ortak modülü jeeweb-ortak-kuvars kuvars ortak modülü jeeweb-ortak-sorgu sorgu paketi modülü jeeweb-ortak-güvenlik güvenlik ortak modülü jeeweb-common-sms SMS ortak modülü jeeweb-common-utils ortak araç modülü jeeweb-ui UI modülü jeeweb-beetl-etiketi şablon etiketi pancara dayalı yay şekline benzer jeeweb-ui-statik genel statik kaynak modülü Statik kaynak modülüne dayalı jeeweb-ui-etiket etiketi jeeweb-web iş modülü jeeweb-admin arka plan durum modülü jeeweb-bbs Jeeweb resmi forum kodu modülü jeeweb-vue ön uç ve arka uçtan ayrılmış arka uç modülleri jeeweb-jeneratör kod üreteci modülü

Kod örneği

.GRID listesi

< #grid: grid id = "onlineGrid" datatype = "yerel" datas = "$ {onlineSessionList}" sortname = "startTimestamp" sortorder = "desc" > < #grid: column label = "sys.common.key" hidden = "true" name = "id" width = "100" / > < #grid: column label = "kullanıcı" adı = "kullanıcı adı" / > < #grid: column label = "kullanıcı ana bilgisayar IP'si" name = "ana bilgisayar" / > < #grid: column label = "Sistem Ana Bilgisayar IP'si" name = "systemHost" / > < #grid: column label = "giriş zamanı" name = "startTimestamp" width = "140" queryMode = "tarih" koşulu = "arasında" / > < #grid: column label = "Son Erişim Zamanı" name = "lastAccessTime" width = "140" / > < #grid: column label = "status" name = "status" dict = "onlinestatus" / > < #grid: column label = "Kullanıcı-Aracı" name = "userAgent" / > < #grid: column label = "Kullanıcı oturum kimliği" name = "id" / > < #grid: toolbar title = "Oturumu Kapatmaya Zorla" btnclass = "btn-danger" icon = "fa-trash-o" function = "toolbarSelectConfirm" url = "$ {adminPath} / sys / online / forceLogout" tipMsg = "Emin misiniz Bu mesajları zorla bırakmak istiyor musunuz, lütfen dikkatli olun! "/ > < / # ızgara: ızgara >

.TREEGRID listesi

< #grid: grid id = "organizationGrid" async = "true" treeGrid = "true" expandColumn = "name" url = "$ {adminPath} / sys / organization / ajaxTreeList" > < #grid: column label = "sys.common.key" hidden = "true" name = "id" width = "100" / > < #grid: column label = "sys.organization.name" name = "name" query = "true" condition = "like" / > < #grid: column label = "sys.organization.remarks" name = "açıklamalar" / > < #grid: column label = "sys.common.opt" name = "opt" formatter = "button" width = "100" / > < #grid: düğme groupname = "opt" function = "sil" / > < #grid: toolbar function = "ekle" / > < #grid: toolbar function = "güncelle" / > < #grid: toolbar function = "sil" / > < #grid: toolbar function = "arama" / > < #grid: toolbar function = "sıfırla" / > < / # ızgara: ızgara >

.Form kodu

< % layout ('/ layouts / form.html', {title: @ MessageUtils.getMessage ('sys.user.updateuser', ''), formId: 'userForm', bodyClass: 'white-bg', libs: 'bootstrap -fileinput '}) {% > < #form: form id = "userForm" modelAttribute = "data" method = "post" class = "form-horizontal" > < #form: gizli yol = "kimlik" / > < tablo sınıfı = "tablo tablo sınırlamalı yoğunlaştırılmış tablo dataTables-example dataTable no-footer" > < tbody > < tr > < td class = "width-15 active text-right" > < etiket > Kullanıcı adı: < /etiket > < / td > < td sınıfı = "genişlik-35" > $ {data.username} < / td > < td class = "width-15 active text-right" > < etiket > < yazı tipi rengi = "kırmızı" > * < /yazı tipi > İsim: < /etiket > < / td > < td sınıfı = "genişlik-35" > < #form: input yolu = "realname" class = "form-control" datatype = "*" nullmsg = "Lütfen adınızı girin!" htmlEscape = "false" / > < label class = "Validform_checktip" > < /etiket > < / td > < / tr > < tr > < td class = "width-15 active text-right" > < etiket > < yazı tipi rengi = "kırmızı" > * < /yazı tipi > posta kutusu: < /etiket > < / td > < td sınıfı = "genişlik-35" > < #form: input yolu = "email" class = "form-control" datatype = "e" nullmsg = "Lütfen adınızı girin!" htmlEscape = "false" / > < label class = "Validform_checktip" > < /etiket > < / td > < td class = "width-15 active text-right" > < etiket > < yazı tipi rengi = "kırmızı" > * < /yazı tipi > iletişim numarası: < /etiket > < / td > < td sınıfı = "genişlik-35" > < #form: input yolu = "phone" class = "form-control" htmlEscape = "false" datatype = "m" nullmsg = "Lütfen kullanıcı adınızı girin!" / > < label class = "Validform_checktip" > < /etiket > < / td > < / tr > < tr > < td class = "aktif" > < label class = "sağa çekin" > < yazı tipi rengi = "kırmızı" > * < /yazı tipi > Kullanıcı rolü: < /etiket > < / td > < td colspan = "3" > < #form: checkboxes path = "roleIdList" nested = "false" öğeler = "$ {allRoles}" defaultValue = "$ {roleIdList}" itemLabel = "name" itemValue = "id" htmlEscape = "false" cssClass = "i- kontroller gerekli "/ > < / td > < / tr > < tr > < td sınıfı = "genişlik-15 etkin" > < label class = "sağa çekin" > organizasyon: < /etiket > < / td > < td colspan = "3" > < #form: treeselect title = "Lütfen bir kuruluş seçin" yol = "organizationIds" nested = "false" dataUrl = "$ {adminPath} / sys / organization / treeData" chkboxType = "" labelName = "ebeveyn adı" labelValue = "$ { organizationNames} "multiselect =" true "/ > < / td > < / tr > < / tbody > < / tablo > < / # form: form > < %}% >

git adresi: https://gitee.com/dataact/jeeweb

springcloud-microservice hızla dağıtılmış bir sistem oluşturur
önceki
"Onyedi" "Haber" 190617 "Batan güneşteki çocuk" Junhui, rahat ve rahat günlük yaşamı gösterir
Sonraki
"NCT" "Paylaş" 190617 NCT127 GIF'in ve çıkartmaların yeni Superhuman versiyonu çok popüler
Spring + SpringMVC + Mybatis dağıtılmış çevik geliştirme sistemi mimarisine dayalı
Honor 618, 40 şampiyonluk yükseltti, Honor 20 PRO'nun ilk satışı büyük bir başarı
"IT House Public Test Works" Roborock T4 Değerlendirme: 1699 LDS + yarı saydam tasarım
İki çocuğunun fotoğraflarını çekti ama büyülü bir dünya yarattı ve internette popüler oldu.
Japon tasarımcılar 2020 Tokyo Olimpiyatları'nı karşılamak için dünyanın bayraklarını erkek tanrılara dönüştürüyor ve Çin yakışıklı
Honor 618, 40 şampiyonluk yükseltti, Honor 20 PRO'nun ilk satışı büyük bir başarı
8 metrekare Japon sapkın daire, 4200 yuan kira, ancak insanlar hala yaşamak için acele ediyor
618 tam platform 3 saniyede 100 milyonu kırdı, Honor 20 PRO kamera amiral gemisi adını hak ediyor
Parlak bir hayatla prestijli bir okuldan mezun oldu ama 52 yaşındayken ölmek için başka ülkelere gitti ...
Momo risk kontrol sistemi statik kural motoru aswan
618 kurulum önerisi: RTX 2060 grafik kartı 5000 yuan için kullanılabilir
To Top