parent
7c06309c78
commit
098dd26f25
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>opsli-plugins</artifactId>
|
||||||
|
<groupId>org.opsliframework.boot</groupId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<version>1.4.6</version>
|
||||||
|
<artifactId>opsli-plugins-pagehelper</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<pagehelper.version>5.3.2</pagehelper.version>
|
||||||
|
<mybatis-spring-boot.version>2.2.2</mybatis-spring-boot.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis</groupId>
|
||||||
|
<artifactId>mybatis</artifactId>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.pagehelper</groupId>
|
||||||
|
<artifactId>pagehelper</artifactId>
|
||||||
|
<version>${pagehelper.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis.spring.boot</groupId>
|
||||||
|
<artifactId>mybatis-spring-boot-autoconfigure</artifactId>
|
||||||
|
<version>${mybatis-spring-boot.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis.spring.boot</groupId>
|
||||||
|
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||||
|
<version>${mybatis-spring-boot.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Compile dependencies -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,69 @@
|
|||||||
|
package org.opsli.plugins.pagehelper;
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageInterceptor;
|
||||||
|
import org.apache.ibatis.plugin.Interceptor;
|
||||||
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
|
import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
|
||||||
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定注入分页插件
|
||||||
|
*
|
||||||
|
* @author liuzh
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
@ConditionalOnBean(SqlSessionFactory.class)
|
||||||
|
@EnableConfigurationProperties(PageHelperProperties.class)
|
||||||
|
@AutoConfigureAfter(MybatisAutoConfiguration.class)
|
||||||
|
@Lazy(false)
|
||||||
|
public class PageHelperAutoConfiguration implements InitializingBean {
|
||||||
|
|
||||||
|
private final List<SqlSessionFactory> sqlSessionFactoryList;
|
||||||
|
|
||||||
|
private final PageHelperProperties properties;
|
||||||
|
|
||||||
|
public PageHelperAutoConfiguration(List<SqlSessionFactory> sqlSessionFactoryList, PageHelperProperties properties) {
|
||||||
|
this.sqlSessionFactoryList = sqlSessionFactoryList;
|
||||||
|
this.properties = properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterPropertiesSet() {
|
||||||
|
// 关闭 Banner
|
||||||
|
String bannerFlag = Boolean.TRUE.equals(this.properties.getBanner())?"true":"false";
|
||||||
|
System.setProperty("pagehelper.banner", bannerFlag);
|
||||||
|
|
||||||
|
PageInterceptor interceptor = new PageInterceptor();
|
||||||
|
interceptor.setProperties(this.properties);
|
||||||
|
for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
|
||||||
|
org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();
|
||||||
|
if (!containsInterceptor(configuration, interceptor)) {
|
||||||
|
configuration.addInterceptor(interceptor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否已经存在相同的拦截器
|
||||||
|
*
|
||||||
|
* @param configuration
|
||||||
|
* @param interceptor
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private boolean containsInterceptor(org.apache.ibatis.session.Configuration configuration, Interceptor interceptor) {
|
||||||
|
try {
|
||||||
|
// getInterceptors since 3.2.2
|
||||||
|
return configuration.getInterceptors().contains(interceptor);
|
||||||
|
} catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,135 @@
|
|||||||
|
package org.opsli.plugins.pagehelper;
|
||||||
|
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration properties for PageHelper.
|
||||||
|
*
|
||||||
|
* @author liuzh
|
||||||
|
*/
|
||||||
|
@ConfigurationProperties(prefix = PageHelperProperties.PAGEHELPER_PREFIX)
|
||||||
|
public class PageHelperProperties extends Properties {
|
||||||
|
|
||||||
|
public static final String PAGEHELPER_PREFIX = "pagehelper";
|
||||||
|
|
||||||
|
public Boolean getOffsetAsPageNum() {
|
||||||
|
return Boolean.valueOf(getProperty("offsetAsPageNum"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOffsetAsPageNum(Boolean offsetAsPageNum) {
|
||||||
|
setProperty("offsetAsPageNum", offsetAsPageNum.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getRowBoundsWithCount() {
|
||||||
|
return Boolean.valueOf(getProperty("rowBoundsWithCount"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRowBoundsWithCount(Boolean rowBoundsWithCount) {
|
||||||
|
setProperty("rowBoundsWithCount", rowBoundsWithCount.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getPageSizeZero() {
|
||||||
|
return Boolean.valueOf(getProperty("pageSizeZero"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageSizeZero(Boolean pageSizeZero) {
|
||||||
|
setProperty("pageSizeZero", pageSizeZero.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getReasonable() {
|
||||||
|
return Boolean.valueOf(getProperty("reasonable"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReasonable(Boolean reasonable) {
|
||||||
|
setProperty("reasonable", reasonable.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getSupportMethodsArguments() {
|
||||||
|
return Boolean.valueOf(getProperty("supportMethodsArguments"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSupportMethodsArguments(Boolean supportMethodsArguments) {
|
||||||
|
setProperty("supportMethodsArguments", supportMethodsArguments.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDialect() {
|
||||||
|
return getProperty("dialect");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDialect(String dialect) {
|
||||||
|
setProperty("dialect", dialect);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHelperDialect() {
|
||||||
|
return getProperty("helperDialect");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHelperDialect(String helperDialect) {
|
||||||
|
setProperty("helperDialect", helperDialect);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getAutoRuntimeDialect() {
|
||||||
|
return Boolean.valueOf(getProperty("autoRuntimeDialect"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutoRuntimeDialect(Boolean autoRuntimeDialect) {
|
||||||
|
setProperty("autoRuntimeDialect", autoRuntimeDialect.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getAutoDialect() {
|
||||||
|
return Boolean.valueOf(getProperty("autoDialect"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutoDialect(Boolean autoDialect) {
|
||||||
|
setProperty("autoDialect", autoDialect.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getCloseConn() {
|
||||||
|
return Boolean.valueOf(getProperty("closeConn"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCloseConn(Boolean closeConn) {
|
||||||
|
setProperty("closeConn", closeConn.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getParams() {
|
||||||
|
return getProperty("params");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParams(String params) {
|
||||||
|
setProperty("params", params);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDefaultCount() {
|
||||||
|
return Boolean.valueOf(getProperty("defaultCount"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultCount(Boolean defaultCount) {
|
||||||
|
setProperty("defaultCount", defaultCount.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDialectAlias() {
|
||||||
|
return getProperty("dialectAlias");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDialectAlias(String dialectAlias) {
|
||||||
|
setProperty("dialectAlias", dialectAlias);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAutoDialectClass() {
|
||||||
|
return getProperty("autoDialectClass");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutoDialectClass(String autoDialectClass) {
|
||||||
|
setProperty("autoDialectClass", autoDialectClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getBanner() {
|
||||||
|
return Boolean.valueOf(getProperty("banner"));
|
||||||
|
}
|
||||||
|
public void setBanner(Boolean banner) {
|
||||||
|
setProperty("banner", banner.toString());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"name": "pagehelper",
|
||||||
|
"type": "org.opsli.plugins.pagehelper.PageHelperProperties",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"name": "pagehelper.banner",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"defaultValue": false,
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.auto-dialect",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.auto-dialect-class",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.auto-runtime-dialect",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.close-conn",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.default-count",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.dialect",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.dialect-alias",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.helper-dialect",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.offset-as-page-num",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.page-size-zero",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.params",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.reasonable",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.row-bounds-with-count",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pagehelper.support-methods-arguments",
|
||||||
|
"type": "java.lang.Boolean",
|
||||||
|
"sourceType": "org.opsli.plugins.pagehelper.PageHelperProperties"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hints": []
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
# Auto Configure
|
||||||
|
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||||
|
org.opsli.plugins.pagehelper.PageHelperAutoConfiguration
|
Loading…
Reference in new issue