iBase4j项目搭建

9 篇文章 0 订阅

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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值