| 转自 https://github.com/WhiteDG/mybatis-crypto/issues/17#issuecomment-1951998793 可以试试修改 PageHelper 插件的注入方式,这样不需要修改大量代码。 先排除掉 @SpringBootApplication(exclude = {PageHelperAutoConfiguration.class})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
} 然后用 import com.github.pagehelper.PageInterceptor;
import com.github.pagehelper.autoconfigure.PageHelperProperties;
import org.apache.ibatis.session.Configuration;
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import java.util.Properties;
@org.springframework.context.annotation.Configuration
@EnableConfigurationProperties({PageHelperProperties.class})
@AutoConfigureAfter({MybatisAutoConfiguration.class})
public class PageHelperAutoConfiguration {
@Autowired
private PageHelperProperties properties;
@Bean
@ConfigurationProperties(prefix = PageHelperProperties.PAGEHELPER_PREFIX)
public Properties pageHelperProperties() {
return new Properties();
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
PageInterceptor interceptor = new PageInterceptor();
Properties properties = new Properties();
//先把一般方式配置的属性放进去
properties.putAll(pageHelperProperties());
//在把特殊配置放进去,由于close-conn 利用上面方式时,属性名就是 close-conn 而不是 closeConn,所以需要额外的一步
properties.putAll(this.properties.getProperties());
interceptor.setProperties(properties);
return new ConfigurationCustomizer() {
@Override
public void customize(Configuration configuration) {
configuration.addInterceptor(interceptor);
}
};
}
} |
👍1
文章介绍了如何在SpringBoot应用中避免修改大量代码,通过修改PageHelper插件的注入方式和使用`ConfigurationCustomizer`自定义配置,以适应特定需求,同时处理如`close-conn`等特殊属性名问题。
1231

被折叠的 条评论
为什么被折叠?



