Skip to content

Commit

Permalink
perf($Database): abstract MyBatis Plus configuration; delete Druid co…
Browse files Browse the repository at this point in the history
…nfiguration
  • Loading branch information
johnnymillergh committed Jan 29, 2021
1 parent 0a7ca5e commit e88b4d6
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 101 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import com.jmsoftware.maf.springbootstarter.controller.GlobalErrorController;
import com.jmsoftware.maf.springbootstarter.controller.HttpApiResourceRemoteApiController;
import com.jmsoftware.maf.springbootstarter.controller.RedirectController;
import com.jmsoftware.maf.springbootstarter.database.DruidConfiguration;
import com.jmsoftware.maf.springbootstarter.database.MyBatisPlusConfiguration;
import com.jmsoftware.maf.springbootstarter.filter.AccessLogFilter;
import com.jmsoftware.maf.springbootstarter.helper.HttpApiScanHelper;
Expand Down Expand Up @@ -37,6 +36,7 @@
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.core.env.Environment;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.expression.common.LiteralExpression;
Expand All @@ -48,7 +48,6 @@
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
import org.springframework.integration.sftp.session.SftpRemoteFileTemplate;
import org.springframework.messaging.MessageHandler;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
Expand All @@ -72,6 +71,7 @@
@ConditionalOnWebApplication
@AutoConfigureOrder(Integer.MIN_VALUE)
@EnableConfigurationProperties(MafConfiguration.class)
@Import({MyBatisPlusConfiguration.class})
public class MafAutoConfiguration {
@PostConstruct
public void postConstruct() {
Expand Down Expand Up @@ -196,18 +196,6 @@ public JwtConfiguration jwtConfiguration(MafProjectProperty mafProjectProperty)
return new JwtConfiguration(mafProjectProperty);
}

@Bean
public DruidConfiguration druidConfiguration(MafConfiguration mafConfiguration) {
log.warn("Initial bean: '{}'", DruidConfiguration.class.getSimpleName());
return new DruidConfiguration(mafConfiguration);
}

@Bean
public MyBatisPlusConfiguration myBatisPlusConfiguration() {
log.warn("Initial bean: '{}'", MyBatisPlusConfiguration.class.getSimpleName());
return new MyBatisPlusConfiguration();
}

@Bean
public RedisCachingConfiguration redisCachingConfiguration(RedisConnectionFactory redisConnectionFactory) {
log.warn("Initial bean: '{}'", RedisCachingConfiguration.class.getSimpleName());
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,41 @@

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.jmsoftware.maf.common.domain.DeleteFlag;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.util.Date;

/**
* <h1>MyBatisPlusConfiguration</h1>
* <p>
* Change description here.
* <p>
* Description: MyBatisPlusConfiguration, change description here.
*
* @author Johnny Miller (锺俊), email: johnnysviva@outlook.com
* @date 2019-05-02 11:57
* @author 钟俊(zhongjun), email: zhongjun@toguide.cn, date: 1/29/2021 1:30 PM
**/
@Slf4j
@Configuration
@EnableTransactionManagement
public class MyBatisPlusConfiguration implements MetaObjectHandler {
public class MyBatisPlusConfiguration {
@Bean
public PaginationInnerInterceptor paginationInnerInterceptor() {
log.warn("Initial bean: '{}'", PaginationInnerInterceptor.class.getSimpleName());
val paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
paginationInnerInterceptor.setMaxLimit(100L);
return paginationInnerInterceptor;
}

@Bean
public BlockAttackInnerInterceptor blockAttackInnerInterceptor() {
log.warn("Initial bean: '{}'", BlockAttackInnerInterceptor.class.getSimpleName());
return new BlockAttackInnerInterceptor();
}

@Bean
public ConfigurationCustomizer configurationCustomizer() {
log.warn("Initial bean: '{}'", ConfigurationCustomizer.class.getSimpleName());
// 新的分页插件,一缓和二缓遵循 MyBatis 的规则。
// 需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
return configuration -> configuration.setUseDeprecatedExecutor(false);
Expand All @@ -59,24 +53,16 @@ public ConfigurationCustomizer configurationCustomizer() {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(PaginationInnerInterceptor paginationInnerInterceptor,
BlockAttackInnerInterceptor blockAttackInnerInterceptor) {
log.warn("Initial bean: '{}'", MybatisPlusInterceptor.class.getSimpleName());
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
mybatisPlusInterceptor.addInnerInterceptor(blockAttackInnerInterceptor);
return mybatisPlusInterceptor;
}

@Override
public void insertFill(MetaObject metaObject) {
log.info("Start to insert fill ....");
val now = new Date();
this.strictInsertFill(metaObject, "deleted", Byte.class, DeleteFlag.NOT_DELETED.getValue());
this.strictInsertFill(metaObject, "createdTime", Date.class, now);
this.strictInsertFill(metaObject, "modifiedTime", Date.class, now);
}

@Override
public void updateFill(MetaObject metaObject) {
log.info("Start to update fill ....");
this.strictUpdateFill(metaObject, "modifiedTime", Date.class, new Date());
@Bean
public MyBatisPlusMetaObjectHandler myBatisPlusConfiguration() {
log.warn("Initial bean: '{}'", MyBatisPlusMetaObjectHandler.class.getSimpleName());
return new MyBatisPlusMetaObjectHandler();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.jmsoftware.maf.springbootstarter.database;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.jmsoftware.maf.common.domain.DeleteFlag;
import com.jmsoftware.maf.springbootstarter.configuration.MafConfiguration;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.util.Date;

/**
* <h1>MyBatisPlusConfiguration</h1>
* <p>
* Change description here.
* <p>
*
* @author Johnny Miller (锺俊), email: johnnysviva@outlook.com
* @date 2019-05-02 11:57
**/
@Slf4j
@Component
public class MyBatisPlusMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("Start to insert fill ....");
val now = new Date();
this.strictInsertFill(metaObject, "deleted", Byte.class, DeleteFlag.NOT_DELETED.getValue());
this.strictInsertFill(metaObject, "createdTime", Date.class, now);
this.strictInsertFill(metaObject, "modifiedTime", Date.class, now);
}

@Override
public void updateFill(MetaObject metaObject) {
log.info("Start to update fill ....");
this.strictUpdateFill(metaObject, "modifiedTime", Date.class, new Date());
}
}

0 comments on commit e88b4d6

Please sign in to comment.