iBase4j是一个Java分布式开发平台,整合了目前Java开发常用的开发框架,官网上介绍如下:

  • iBase4J是Java语言的分布式系统架构。 使用Spring整合开源框架。
  • 使用Maven对项目进行模块化管理,提高项目的易开发性、扩展性。
  • 系统包括5个子系统:公共功能、系统管理Service、系统管理Web、业务Service、业务Web。
  • 公共功能:公共功能(AOP、缓存、基类、调度等等)、公共配置、工具类。
  • 系统管理:包括用户管理、权限管理、数据字典、系统参数管理等等。
  • 业务相关:您的业务开发。
  • 可以无限的扩展子系统,子系统之间使用Dubbo或MQ进行通信。

项目地址: https://github.com/iBase4J/iBase4J

码云地址:https://gitee.com/iBase4J/iBase4J

参考资料: http://blog.csdn.net/u012225679/article/details/73849357

搭建iBase4j项目需要用到的工具如下:

  • Intellij IDEA 2017.3
  • nginx 1.13.9
  • mysql 5.7.21
  • zooKeeper 3.4.10
  • redis 3.2.1
  • activemq 5.15.3
  • maven 3.3.3

1.项目结构

首先下载iBase4j项目,解压后的文件结构如下

iBase4J是一个分布式系统架构,每个模块都是一个单独的系统,每个系统可以发布多个service,不同的web间使用相同的redis缓存保证session相同,目前项目下有8个子项目:iBase4J-Common、iBase4J-SYS-Facade、iBase4J-SYS-Service、iBase4J-SYS-Web、iBase4J-Biz-Facade、iBase4J-Biz-Service、iBase4J-Biz-Web、iBase4J-UI。

  1. iBase4J-Common是通用配置和工具类,已打成jar包;
  2. iBase4J-SYS-Facade是iBase4J-SYS-Service和iBase4J-SYS-Web交互需要的façade和model;iBase4J-SYS-Service是系统管理相关的数据库操作服务;
  3. iBase4J-SYS-Web是连接UI和iBase4J-SYS-Service的桥梁。
  4. iBase4J-SYS-Web和iBase4J-SYS-Service之间通过dubbo或MQ交互。Web和Service可以创建多个,Web使用相同的spring-session命名空间并注册到相同的redis服务实现session共享,Web通过使用不同的参数调用统一的provider.excute方法实现调用不同的service方法。
  5. UI是前后端分离的,需要使用nginx反向代理。通过ajax异步请求获取数据;多系统 通过不同前缀 分发到不同web;
  6. iBase4J-SYS-Service使用Druid连接数据库,可以监控sql执行情况,访问地址:service地址:service端口/druid;
    • 使用AOP实现读写数据库切换,使用Mybatis持久化框架,使用PageHelper辅助分页,使用spring注解把数据缓存到redis;iBase4J-SYS-Web使用Spring MVC框架管理控制器;使用Shiro辅助管理权限,权限严格控制到给个URL请求。
    • 调度管理,在这里只有调度的声明,可以删除、修改、暂停、启动、执行。调度的实现可以在别的任意模块,只需用dubbo暴露服务即可。调度支持集群模式。
  7. UI目前计划有3个版本,已开发的只有angularJS版不同UI的菜单不同,所以请根据需要执行对应的SQL菜单;
  8. iBase4J-Biz-Facade、iBase4J-Biz-Service、iBase4J-Biz-Web为扩展业务功能项目。
  9. SQL文件见项目中sqls目录;
  10. 权限控制:
    • 菜单权限:可以直接配置用户菜单,也可以通过配置角色配用户菜单;sys_user_role配置用户角色,sys_role_menu配置角色菜单/权限;操作类权限(增删改等)配置为不显示的菜单;
    • 代码中权限的控制,如图

2.环境搭建

首先需要初始化数据库,新建一个ibase4j数据库,将项目文件夹sqls下面的三个sql脚本分别导入数据库中,导入成功之后数据库将有如下一下数据表

修改service层项目下的resource/config/jdbc.properties数据库配置文件:

数据库密码使用DES加密方法加密,SecurityUtil.encryptDes(“密码”, ${db.key}.getBytes());  

可以使用SecurityUtil.encryptDes方法加密密码,db.key 或 druid.key在jdbc.properties中配置

3.运行后端项目

1) 分别启动 zooKeeper, redis, activemq后台服务

2) 在IDEA中添加如下两个maven任务,分别用来启动 sys-service, sys-web项目

clean package -P build tomcat7:run-war -f pom-sys-service-server.xml 
clean package -P build tomcat7:run-war -f pom-sys-web-server.xml

3) 然后先启动 sys-service项目,完成后启动sys-web项目,启动成功之后访问http://localhost:8088/swagger-ui.html可以看到如下swagger-ui.html的restful接口

4) 访问durid  http://localhost:8085/druid  查看SQL执行情况(用户密码:druid/druid):

4.运行前端项目

目前iBase4j的前端项目是使用AngularJS v1.5.6开发的,并且使用nginx方向代理静态页面的形式运行,为了启动iBase4j的前端项目需要配置nginx,

在nginx的安装目录下找到conf文件夹下的nginx.conf文件,按照如下所示配置代理的静态页面的地址

具体内容如下:

server {
    listen       8002;
    server_name  localhost;
    location / {
        root   D:\IdeaProjects\iBase4J\iBase4J-UI\iBase4J-UI-AngularJS;
        index  index.html index.htm;
         
        # 用户浏览器端的缓存设置 
        location ~* \.(css|js|jpg|jpeg|gif|png|swf|htm|html|json|xml|svg|woff|ttf|eot|map|ico)$ { 
            expires 1h; 
            if (-f $request_filename) { 
                break
            
        }
         
        # 动态页面,交给tomcat处理 
        if ( !-e $request_filename) { 
            proxy_pass  http://127.0.0.1:8088; 
        }
    
}

启动nginx服务器, nginx.exe -c .\conf\nginx.conf  然后访问 http://localhost:8002 地址就可以看到iBase4j的前端页面了,用户名密码:admin/111111

iBase4j项目搭建相关推荐

  1. [转]2020年排名前20的基于SpringBoot搭建的开源项目,帮你快速进行项目搭建!

    △Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 287 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) SpringBoot ...

  2. 2020年排名前20的基于SpringBoot搭建的开源项目,帮你快速进行项目搭建!

    △Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 287 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) SpringBoot ...

  3. 超简单的react和typescript和引入scss项目搭建流程

    1.首先我们先创建一个react项目,react官网也有react项目搭建的命令 npx create-react-app my-app cd my-app 2.安装我们项目需要的样式依赖,这个项目我 ...

  4. angular6 mysql_Angular6项目搭建

    安装工具: Nodejs, npm     最新版, https://nodejs.org/en/ Angular CLI,    npm install -g @angular/cli Visual ...

  5. webstorm打包rn项目_React 之 项目搭建

    阅读本文约需要6分钟 大家好,我是你们的导师,经常看我朋友圈的同学应该知道,我每天会在微信上给大家免费提供以下服务! 1.长期为你提供最优质的学习资源! 2.给你解决技术问题! 3.每天在朋友圈里分享 ...

  6. 个人博客开发-01-nodeJs项目搭建

    // window系统下 1.nodeJs 安装 nodeJs 安装 看  这里 , 先下载再下一步下一步就OK了,我的是在C盘里安装的. 安装完以后 按 win + R ,在弹出的小框框里输入 CM ...

  7. Spring MVC + Mybatis项目搭建

    1.参考<Java Spring MVC项目搭建(一)--Spring MVC框架集成>配置spring mvc需要的jar包及eclipse配置(主要是针对servlet-api.jar ...

  8. SSM项目搭建一(终)

    2019独角兽企业重金招聘Python工程师标准>>> 项目搭建使用的不仅仅只是前面所说的那些,还有一下比如gson或jackson.个人类库.定时器等等,这里就不一一赘述了.下面看 ...

  9. spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

    下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the ...

  10. MVVM框架的搭建(二)——项目搭建

    介绍完背景以及初衷之后,我们开始搭建MVVM的框架,这一部分我们进行简单的搭建,了解MVVM架构的基本结构. MVVM框架的搭建(一)--背景 MVVM框架的搭建(二)--项目搭建 MVVM框架的搭建 ...

最新文章

  1. web服务器的文档的部分路径是如何工作的,FinderWeb - 文档中心
  2. Logback中使用TurboFilter实现日志级别等内容的动态修改
  3. 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 )
  4. linux进程卡住_鸿蒙系统,Linux? Android?
  5. 25个实用编程小技巧
  6. Move or commit them before Pull git
  7. jboss性能指标_JBoss BRMS复杂事件处理(CEP)性能基准
  8. [学习笔记]半平面交
  9. 2008不可错过的好莱坞电影
  10. 马云:创业成功者没有固定模式
  11. 8254跑马灯c语言程序,C语言笔记-基于C语言实现的流水跑马灯
  12. 把汇总报表页面生成 pdf文件方案!
  13. C语言求绝对值的问题
  14. MS project中的完成百分比、工时完成百分比和实际完成百分比
  15. 查询条件中含有加号_中国邮储银行信用卡公众号账单查询
  16. android手机远程视频移动检测的实践
  17. 小猫爪:i.MX RT1050学习笔记5-中断NVIC
  18. hadoop问题集(1)
  19. 从零开始编写SAT求解器(一)
  20. WebRTC学习笔记五 SDP(Session Description Protocol)

热门文章

  1. vpp之feature机制介绍
  2. Win7安装IIS出错,总是提示“出现错误。并非所有的功能被成功更改。”
  3. java 排队_JAVA实现排队论
  4. 设计模式学习(四)工厂模式
  5. 长江大学计算机网络期末考试试题及答案,长江大学计算机基础考试试题
  6. Android开发指南-窗口小部件(App Widgets)
  7. Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
  8. php adodb类库下载,PHP中 ADOdb 类库介绍(二)
  9. php地图找房代码,vue-baidu-map简单实现地图找房
  10. 怎么用软件测试PSP硬件,PSP适用FC模拟器从安装到使用全面教程