Commit b13f4fed authored by xiandafu's avatar xiandafu
Browse files

1.3.0

parent 002173af
[TOC]
# springboot-plus # springboot-plus
一个基于SpringBoot 2 的管理后台系统,包含了用户管理,组织机构管理,角色管理,功能点管理,菜单管理,权限分配,数据权限分配,代码生成等功能 一个基于SpringBoot 2 的管理后台系统,包含了用户管理,组织机构管理,角色管理,功能点管理,菜单管理,权限分配,数据权限分配,代码生成等功能
相比其他开源的后台系统,SpringBoot-Plus 具有一定的复杂度 相比其他开源的后台开发平台脚手架,SpringBoot-Plus 具有一定的复杂度
系统基于Spring Boot2.1技术,前端采用了Layui2.4。数据库以MySQL/Oracle/Postgres/SQLServer为实例,理论上是跨数据库平台. 系统基于Spring Boot2.1技术,前端采用了Layui2.4。数据库以MySQL/Oracle/Postgres/SQLServer为实例,理论上是跨数据库平台.
基本技术栈来源于我为电子工业出版社编写的的[<<Spring Boot 2 精髓 >>](https://item.jd.com/12214143.html) (这本书每一章也有各种例子,但Springboot-plus 更偏向于应用而不是教学) 基本技术栈来源于我为电子工业出版社编写的的[<<Spring Boot 2 精髓 >>](https://item.jd.com/12214143.html) (这本书每一章也有各种例子,但Springboot-plus 更偏向于应用而不是教学)
该书的第二版电子版可以可以在[看云广场购买](https://www.kancloud.cn/xiandafu/springboot2-in-practice/),第二版也包含一章说明Plus系统
当前版本:1.2.0
当前版本:1.3.0
技术交流群:219324263(满) 636321496 技术交流群:219324263(满) 636321496
...@@ -45,9 +50,10 @@ com.ibeetl.admin.CosonleApplication 是系统启动类,在admin-console包下, ...@@ -45,9 +50,10 @@ com.ibeetl.admin.CosonleApplication 是系统启动类,在admin-console包下,
还需要修改SpringBoot配置文件application.properties,修改你的数据库地址和访问用户 还需要修改SpringBoot配置文件application.properties,修改你的数据库地址和访问用户
~~~properties ~~~properties
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/starter?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false spring.datasource.baseDataSource.url=jdbc:mysql://127.0.0.1:3306/starter?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&useInformationSchema=true
spring.datasource.username=root spring.datasource.baseDataSource.username=root
spring.datasource.password=123456 spring.datasource.baseDataSource.password=123456
spring.datasource.baseDataSource.driver-class-name=com.mysql.cj.jdbc.Driver
~~~ ~~~
...@@ -201,7 +207,63 @@ SpringPlus-Boot 并非以菜单或者按钮来组织整个系统,而是以功 ...@@ -201,7 +207,63 @@ SpringPlus-Boot 并非以菜单或者按钮来组织整个系统,而是以功
# 2 单体系统,系统拆分和微服务
plus是一个适合单体系统,系统拆分的java快速开发平台,也可以经过改造成微服务平台(以前做一个版本,但觉得plus应该聚焦系统核心,而不是简单堆砌功能,所以放弃了)
以下是单体系统,小系统,和微服务的区别
单体系统是一种常见系统设计方式,也是这十几年年来最主要的设计方式。单体系统的所有功能都在一个工程里,打成一个war包,部署。这样有如下明显好处
- 单体系统开发方式简单,我们从刚开始学习编程,就是完成的单体系统,开发人员只要集中精力开发当前工程
- 容易修改,如果需要修改任何功能,都非常方便,只需要修改一个工程范围的代码
- 测试简单,单体系统测试不需要考虑别的系统,避免本书下册要提到的各种REST,MQ调用
- 部署也很容易:不需要考虑跟别的系统关系,直接打war包部署到Web服务器即可
- 性能容易扩展,可以通过Nginx,把一个应用部署到多个服务器上。
随着业务发展,重构,单体系统越来越多,在开发一个庞大的单体系统的时候,就会有如下弊病
- 单体系统庞大,越来越难理解单体系统,微小的改动牵涉面广泛导致开发小组小心谨慎,开发速度会越来越慢。另外,启动一个庞大的单体系统,可能需要3分钟,或者更多时间
- 多个功能在同一个单体系统上开发,导致测试越来越慢,比如,测试必须排期,串行测试
- 单体系统如果想对技术进行更新换代,那代价非常大,如果是个小系统构成,则可以选取一个小系统先做尝试。单体大系统是几乎不可能做技术升级的
- 单体系统的所有功能运行在同一个JVM里,功能会互相影响,比如一个统计上传word文档的页码的功能由于非常消耗CPU,因此,会因为调用统计功能,导致整个系统短暂都不可用,出现假死的现象
因此,越来越多的架构师在设计系统的时候,会考虑系统拆分成多个单体小系统甚至是微服务。对于传统企业应用,拆成小系统更合适,对互联网系统,使用微服务个更合适,这是因为
- 传统IT系统本质上还是会用一个数据库,而微服务提倡的是一个服务一个数据库
- 传统IT系统很少需要调用其他模块服务。传统IT系统通过工作流来串联其他子系统。而电商类的微服务则是通过RPC等方式进行交互,是一个轻量级协议。传统IT系统也可以通过SOA,JMS跟其他系统(非子系统)交互,采用重量级协议
- 微服务对系统的基础设施要求很高,比如微服务治理,弹性库等等,只要电商系统才有人力物力去做这种事情,而传统IT系统,及时财大气粗,也暂时不具备微服务那样的IT基础设置
因此,对于大多数传统IT应用来说,单体拆分小系统在技术上没有风险,是一个可以立即实施的架构。如下是一个单体系统拆分后的物理架构
![design](doc/readme/design.png)
对于用户来说,访问不同的菜单功能,讲定位到不同得子系统,提供服务。
> plus支持多数据库
# 3 需要技术支持?
P
plus系统足够聚焦内核功能,简单易用功能强大。如果你需要技术支持,可以通过如下方式
* 加入qq技术交流群:219324263(满) 636321496
* 购买我的《[Spring Boot实战权威指南 基础篇》](https://www.kancloud.cn/xiandafu/springboot2-in-practice/),从书里解答你的问题
* ibeetl.com社区搜索你的问题
* [微信加入我的知识星球,与我一起探索Java技术,连接铁杆粉丝](https://wx.zsxq.com/dweb/#/index/824551244882) (提供半商业技术支持)
/application.properties
/banner.txt
/beetl.properties
/btsql-ext.properties
/com/
/excelTemplates/
/sql/
/static/
/templates/
...@@ -7,11 +7,11 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -7,11 +7,11 @@ import org.springframework.transaction.annotation.Transactional;
import com.ibeetl.admin.console.dao.AuditConsoleDao; import com.ibeetl.admin.console.dao.AuditConsoleDao;
import com.ibeetl.admin.core.entity.CoreAudit; import com.ibeetl.admin.core.entity.CoreAudit;
import com.ibeetl.admin.core.service.BaseService; import com.ibeetl.admin.core.service.CoreBaseService;
@Service @Service
@Transactional @Transactional
public class AuditConsoleService extends BaseService<CoreAudit> { public class AuditConsoleService extends CoreBaseService<CoreAudit> {
@Autowired @Autowired
AuditConsoleDao auditConsoleDao; AuditConsoleDao auditConsoleDao;
......
...@@ -15,7 +15,7 @@ import com.ibeetl.admin.console.dao.DictConsoleDao; ...@@ -15,7 +15,7 @@ import com.ibeetl.admin.console.dao.DictConsoleDao;
import com.ibeetl.admin.console.web.dto.DictExcelImportData; import com.ibeetl.admin.console.web.dto.DictExcelImportData;
import com.ibeetl.admin.core.entity.CoreDict; import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.BaseService; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.ExcelError; import com.ibeetl.admin.core.util.ExcelError;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
...@@ -25,7 +25,7 @@ import com.ibeetl.admin.core.util.PlatformException; ...@@ -25,7 +25,7 @@ import com.ibeetl.admin.core.util.PlatformException;
@Service @Service
@Transactional @Transactional
public class DictConsoleService extends BaseService<CoreDict>{ public class DictConsoleService extends CoreBaseService<CoreDict> {
@Autowired private DictConsoleDao dictDao; @Autowired private DictConsoleDao dictDao;
......
...@@ -16,12 +16,10 @@ import com.ibeetl.admin.core.dao.CoreMenuDao; ...@@ -16,12 +16,10 @@ import com.ibeetl.admin.core.dao.CoreMenuDao;
import com.ibeetl.admin.core.dao.CoreRoleMenuDao; import com.ibeetl.admin.core.dao.CoreRoleMenuDao;
import com.ibeetl.admin.core.entity.CoreFunction; import com.ibeetl.admin.core.entity.CoreFunction;
import com.ibeetl.admin.core.entity.CoreMenu; import com.ibeetl.admin.core.entity.CoreMenu;
import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.entity.CoreRoleFunction; import com.ibeetl.admin.core.entity.CoreRoleFunction;
import com.ibeetl.admin.core.entity.CoreRoleMenu; import com.ibeetl.admin.core.entity.CoreRoleMenu;
import com.ibeetl.admin.core.rbac.tree.FunctionItem; import com.ibeetl.admin.core.rbac.tree.FunctionItem;
import com.ibeetl.admin.core.rbac.tree.OrgItem; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.BaseService;
import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
/** /**
...@@ -30,7 +28,7 @@ import com.ibeetl.admin.core.util.PlatformException; ...@@ -30,7 +28,7 @@ import com.ibeetl.admin.core.util.PlatformException;
*/ */
@Service @Service
@Transactional @Transactional
public class FunctionConsoleService extends BaseService<CoreFunction>{ public class FunctionConsoleService extends CoreBaseService<CoreFunction> {
@Autowired @Autowired
FunctionConsoleDao functionDao; FunctionConsoleDao functionDao;
......
package com.ibeetl.admin.console.service; package com.ibeetl.admin.console.service;
import com.ibeetl.admin.console.dao.MenuConsoleDao; import com.ibeetl.admin.console.dao.MenuConsoleDao;
import com.ibeetl.admin.console.web.query.MenuQuery;
import com.ibeetl.admin.core.dao.CoreRoleMenuDao; import com.ibeetl.admin.core.dao.CoreRoleMenuDao;
import com.ibeetl.admin.core.entity.CoreMenu; import com.ibeetl.admin.core.entity.CoreMenu;
import com.ibeetl.admin.core.rbac.tree.MenuItem; import com.ibeetl.admin.core.rbac.tree.MenuItem;
import com.ibeetl.admin.core.service.BaseService; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -20,7 +18,7 @@ import java.util.List; ...@@ -20,7 +18,7 @@ import java.util.List;
@Service @Service
@Transactional @Transactional
public class MenuConsoleService extends BaseService<CoreMenu> { public class MenuConsoleService extends CoreBaseService<CoreMenu> {
@Autowired @Autowired
MenuConsoleDao menuDao; MenuConsoleDao menuDao;
......
...@@ -12,7 +12,7 @@ import com.ibeetl.admin.console.dao.OrgConsoleDao; ...@@ -12,7 +12,7 @@ import com.ibeetl.admin.console.dao.OrgConsoleDao;
import com.ibeetl.admin.core.entity.CoreOrg; import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.tree.OrgItem; import com.ibeetl.admin.core.rbac.tree.OrgItem;
import com.ibeetl.admin.core.service.BaseService; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
...@@ -22,7 +22,7 @@ import com.ibeetl.admin.core.util.PlatformException; ...@@ -22,7 +22,7 @@ import com.ibeetl.admin.core.util.PlatformException;
*/ */
@Service @Service
@Transactional @Transactional
public class OrgConsoleService extends BaseService<CoreOrg> { public class OrgConsoleService extends CoreBaseService<CoreOrg> {
@Autowired @Autowired
private OrgConsoleDao orgDao; private OrgConsoleDao orgDao;
......
...@@ -14,14 +14,14 @@ import com.ibeetl.admin.console.dao.RoleConsoleDao; ...@@ -14,14 +14,14 @@ import com.ibeetl.admin.console.dao.RoleConsoleDao;
import com.ibeetl.admin.core.entity.CoreRole; import com.ibeetl.admin.core.entity.CoreRole;
import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.tree.OrgItem; import com.ibeetl.admin.core.rbac.tree.OrgItem;
import com.ibeetl.admin.core.service.BaseService; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.enums.RoleTypeEnum; import com.ibeetl.admin.core.util.enums.RoleTypeEnum;
@Service @Service
@Transactional @Transactional
public class RoleConsoleService extends BaseService<CoreRole> { public class RoleConsoleService extends CoreBaseService<CoreRole> {
private static final Logger LOGGER = LoggerFactory.getLogger(RoleConsoleService.class); private static final Logger LOGGER = LoggerFactory.getLogger(RoleConsoleService.class);
@Autowired @Autowired
......
...@@ -22,7 +22,7 @@ import com.ibeetl.admin.core.entity.CoreUser; ...@@ -22,7 +22,7 @@ import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.entity.CoreUserRole; import com.ibeetl.admin.core.entity.CoreUserRole;
import com.ibeetl.admin.core.file.FileService; import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.rbac.tree.OrgItem; import com.ibeetl.admin.core.rbac.tree.OrgItem;
import com.ibeetl.admin.core.service.BaseService; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CoreDictService; import com.ibeetl.admin.core.service.CoreDictService;
import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
...@@ -32,7 +32,7 @@ import com.ibeetl.admin.core.util.enums.GeneralStateEnum; ...@@ -32,7 +32,7 @@ import com.ibeetl.admin.core.util.enums.GeneralStateEnum;
@Service @Service
@Transactional @Transactional
public class UserConsoleService extends BaseService<CoreUser> { public class UserConsoleService extends CoreBaseService<CoreUser> {
@Autowired @Autowired
UserConsoleDao userDao; UserConsoleDao userDao;
......
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/starter?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&useInformationSchema=true spring.datasource.baseDataSource.url=jdbc:mysql://127.0.0.1:3306/starter?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&useInformationSchema=true
spring.datasource.username=root spring.datasource.baseDataSource.username=root
spring.datasource.password=123456 spring.datasource.baseDataSource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.baseDataSource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
#spring.datasource.username=starter2
#spring.datasource.password=starter2
#spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
beetlsql.ds.dataSource.basePackage=com beetlsql.ds.baseDataSource.basePackage=com
beetlsql.ds.dataSource.dbStyle=org.beetl.sql.core.db.MySqlStyle beetlsql.ds.baseDataSource.dbStyle=org.beetl.sql.core.db.MySqlStyle
#有一个数据源命名为dataSource #beetlsql.basePackage=com.ibeetl,com.xxx.yourpackage
beetlsql.mutiple.datasource=dataSource #有一个数据源命名为baseDataSource,你可以添加多数据源
beetlsql.mutiple.datasource=baseDataSource
# 1,1 是管理员密码,相当于启动后就登录,方便测试,系统需要取消这俩个配置 # 1,1 是管理员密码,相当于启动后就登录,方便测试,系统需要取消这俩个配置
user.id=1 user.id=1
...@@ -29,12 +26,8 @@ logging.level.org.springframework.web.servlet.mvc.method.annotation=warn ...@@ -29,12 +26,8 @@ logging.level.org.springframework.web.servlet.mvc.method.annotation=warn
server.port=8080 server.port=8080
#html视图交给beetl渲染 #html视图交给beetl渲染
beetl.suffix=html beetl.suffix=html
beetlsql.dataSource.dbStyle=org.beetl.sql.core.db.MySqlStyle
#beetlsql.basePackage=com.ibeetl,com.xxx.yourpackage
beetlsql.basePackage=com
app.name=SpringBoot-Plus app.name=SpringBoot-Plus
logging.pattern.console=%-4relative [%thread] %-5level %logger{256} %M %L - %msg%n logging.pattern.console=%-4relative [%thread] %-5level %logger{256} %M %L - %msg%n
spring.devtools.restart.exclude=static/**,templates/**
#文档预览服务的调用地址,参考https://gitee.com/kekingcn/file-online-preview 安装,没有如下配置无法使用预览功能 #文档预览服务的调用地址,参考https://gitee.com/kekingcn/file-online-preview 安装,没有如下配置无法使用预览功能
file.previewURL=http://localhost:8012/onlinePreview file.previewURL=http://localhost:8012/onlinePreview
......
ENGINE=org.beetl.core.engine.DefaultTemplateEngine
DELIMITER_STATEMENT_START=<!--# DELIMITER_STATEMENT_START=<!--#
DELIMITER_STATEMENT_END=--> DELIMITER_STATEMENT_END=-->
RESOURCE.tagRoot = common/tag RESOURCE.tagRoot = common/tag
......
...@@ -54,7 +54,6 @@ ...@@ -54,7 +54,6 @@
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
</dependency> </dependency>
<!-- <dependency> <!-- <dependency>
......
...@@ -13,6 +13,7 @@ public @interface Query { ...@@ -13,6 +13,7 @@ public @interface Query {
public static final int TYPE_GENERAL = 1; public static final int TYPE_GENERAL = 1;
public static final int TYPE_DATE_BETWEEN = 2; public static final int TYPE_DATE_BETWEEN = 2;
//未实现
public static final int TYPE_DATETIME_BETWEEN = 3; public static final int TYPE_DATETIME_BETWEEN = 3;
public static final int TYPE_VALUE_BETWEEN = 4; public static final int TYPE_VALUE_BETWEEN = 4;
public static final int TYPE_DICT = 5; public static final int TYPE_DICT = 5;
......
...@@ -9,13 +9,13 @@ import org.springframework.core.env.Environment; ...@@ -9,13 +9,13 @@ import org.springframework.core.env.Environment;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
@Configuration @Configuration
public class DataSourceConfig { public class DataSourceConfig {
@Bean(name = "dataSource") @Bean(name = "baseDataSource")
public DataSource datasource(Environment env) { public DataSource datasource(Environment env) {
HikariDataSource ds = new HikariDataSource(); HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl(env.getProperty("spring.datasource.url")); ds.setJdbcUrl(env.getProperty("spring.datasource.baseDataSource.url"));
ds.setUsername(env.getProperty("spring.datasource.username")); ds.setUsername(env.getProperty("spring.datasource.baseDataSource.username"));
ds.setPassword(env.getProperty("spring.datasource.password")); ds.setPassword(env.getProperty("spring.datasource.baseDataSource.password"));
ds.setDriverClassName(env.getProperty("spring.datasource.driver-class-name")); ds.setDriverClassName(env.getProperty("spring.datasource.baseDataSource.driver-class-name"));
return ds; return ds;
} }
} }
......
...@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
import com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService; import com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService;
/** /**
* 描述: 密码工具,系统默认采用明文 * 描述: 密码工具,系统默认采用明文存储,可以自动装配一个加密的
* *
* @author : xiandafu * @author : xiandafu
*/ */
......
...@@ -8,6 +8,9 @@ import org.springframework.context.annotation.Configuration; ...@@ -8,6 +8,9 @@ import org.springframework.context.annotation.Configuration;
import com.ibeetl.admin.core.rbac.DataAccessFactory; import com.ibeetl.admin.core.rbac.DataAccessFactory;
import com.ibeetl.admin.core.rbac.da.DefaultDataAccessFactory; import com.ibeetl.admin.core.rbac.da.DefaultDataAccessFactory;
/**
* 数据权限,可以自动装配
*/
@Configuration @Configuration
public class RbacDataAccessConfig { public class RbacDataAccessConfig {
@ConditionalOnMissingBean(DataAccessFactory.class) @ConditionalOnMissingBean(DataAccessFactory.class)
......
...@@ -9,7 +9,7 @@ import com.ibeetl.admin.core.entity.CoreAudit; ...@@ -9,7 +9,7 @@ import com.ibeetl.admin.core.entity.CoreAudit;
@Service @Service
@Transactional @Transactional
public class CoreAuditService extends BaseService<CoreAudit> { public class CoreAuditService extends CoreBaseService<CoreAudit> {
@Autowired @Autowired
private CoreAuditDao sysAuditDao; private CoreAuditDao sysAuditDao;
......
...@@ -15,16 +15,19 @@ import com.ibeetl.admin.core.annotation.Dict; ...@@ -15,16 +15,19 @@ import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.CoreDict; import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.enums.DelFlagEnum; import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import org.springframework.beans.factory.annotation.Qualifier;
/** /**
*
* 描述: * 描述:
* @author : xiandafu * @author : xiandafu
*/ */
public class BaseService<T> { public class CoreBaseService<T> {
@Autowired @Autowired
protected CoreDictService dictUtil; protected CoreDictService dictUtil;
@Autowired @Autowired
@Qualifier("baseDataSourceSqlManagerFactoryBean")
protected SQLManager sqlManager; protected SQLManager sqlManager;
...@@ -194,4 +197,6 @@ public class BaseService<T> { ...@@ -194,4 +197,6 @@ public class BaseService<T> {
} }
} }
...@@ -21,7 +21,7 @@ import com.ibeetl.admin.core.util.enums.DelFlagEnum; ...@@ -21,7 +21,7 @@ import com.ibeetl.admin.core.util.enums.DelFlagEnum;
*/ */
@Service @Service
@Transactional @Transactional
public class CoreDictService extends BaseService<CoreDict> { public class CoreDictService extends CoreBaseService<CoreDict> {
private static final Logger LOGGER = LoggerFactory.getLogger(CoreDictService.class); private static final Logger LOGGER = LoggerFactory.getLogger(CoreDictService.class);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment