diff --git a/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/MafAutoConfiguration.java b/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/MafAutoConfiguration.java index ca51fd3f..fbe6661c 100644 --- a/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/MafAutoConfiguration.java +++ b/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/MafAutoConfiguration.java @@ -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; @@ -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; @@ -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; @@ -72,6 +71,7 @@ @ConditionalOnWebApplication @AutoConfigureOrder(Integer.MIN_VALUE) @EnableConfigurationProperties(MafConfiguration.class) +@Import({MyBatisPlusConfiguration.class}) public class MafAutoConfiguration { @PostConstruct public void postConstruct() { @@ -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()); diff --git a/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/DruidConfiguration.java b/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/DruidConfiguration.java deleted file mode 100644 index 796a0a97..00000000 --- a/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/DruidConfiguration.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.jmsoftware.maf.springbootstarter.database; - -import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.druid.support.http.StatViewServlet; -import com.alibaba.druid.support.http.WebStatFilter; -import com.jmsoftware.maf.springbootstarter.configuration.MafConfiguration; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import lombok.val; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.boot.web.servlet.ServletRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import javax.sql.DataSource; - -/** - *

DruidConfiguration

- *

- * Druid Configuration - * Click me to view Druid Monitor - * - * @author Johnny Miller (锺俊), email: johnnysviva@outlook.com - * @date 2019-03-24 13:31 - **/ -@Slf4j -@Configuration -@RequiredArgsConstructor -public class DruidConfiguration { - private final MafConfiguration mafConfiguration; - - @Bean - public ServletRegistrationBean druidServlet() { - val servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); - servletRegistrationBean.addInitParameter("loginUsername", mafConfiguration.getSuperUserRole()); - servletRegistrationBean.addInitParameter("loginPassword", mafConfiguration.getSuperUserRole()); - servletRegistrationBean.addInitParameter("resetEnable", "false"); - return servletRegistrationBean; - } - - @Bean - public FilterRegistrationBean filterRegistrationBean() { - val filterRegistrationBean = new FilterRegistrationBean(); - filterRegistrationBean.setFilter(new WebStatFilter()); - filterRegistrationBean.addUrlPatterns("/*"); - // Ignored resources - filterRegistrationBean.addInitParameter("exclusions", - "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); - filterRegistrationBean.addInitParameter("profileEnable", "true"); - filterRegistrationBean.addInitParameter("principalCookieName", "USER_COOKIE"); - filterRegistrationBean.addInitParameter("principalSessionName", "USER_SESSION"); - return filterRegistrationBean; - } - - @Bean - @ConfigurationProperties(prefix = "spring.datasource") - public DataSource druidDataSource() { - log.warn("Initial data source"); - return new DruidDataSource(); - } -} diff --git a/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/MyBatisPlusConfiguration.java b/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/MyBatisPlusConfiguration.java index ba7bcaad..28ba4936 100644 --- a/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/MyBatisPlusConfiguration.java +++ b/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/MyBatisPlusConfiguration.java @@ -2,35 +2,27 @@ 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; - /** - *

MyBatisPlusConfiguration

- *

- * Change description here. - *

+ * 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; @@ -38,11 +30,13 @@ public PaginationInnerInterceptor 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); @@ -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(); } } diff --git a/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/MyBatisPlusMetaObjectHandler.java b/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/MyBatisPlusMetaObjectHandler.java new file mode 100644 index 00000000..bf9ccb4f --- /dev/null +++ b/spring-boot-starter/src/main/java/com/jmsoftware/maf/springbootstarter/database/MyBatisPlusMetaObjectHandler.java @@ -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; + +/** + *

MyBatisPlusConfiguration

+ *

+ * Change description here. + *

+ * + * @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()); + } +}