跨域配置类:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 允许跨域访问的路径
.allowedOrigins("*") // 允许跨域访问的源
.allowCredentials(true)//是否允许使用cookie
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") // 允许请求方法
//.maxAge(168000) // 预检间隔时间
.allowedHeaders("*"); // 允许头部设置
// .allowCredentials(true); // 是否发送cookie
}
}
mybatis plus分页配置类:
/**
* 配置MP的分页插件
* 将 MybatisPlusInterceptor 对象配置到 Spring 容器中。
* MybatisPlusInterceptor 是 MyBatis-Plus 提供的插件
* 在这个配置类中,通过添加内部拦截器 PaginationInnerInterceptor,实现了分页功能的拦截和处理。
*/
@Configuration //表示该类是一个配置类,Spring Boot 在启动时会加载和解析该类
public class MybatisPlusConfig {
@Bean //注解标记的类会被 Spring 自动扫描并注册为一个 Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
mybatis plus自动生成
jar包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
public class MyTest {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://127.0.0.1/reggie?serverTimezone=Asia/Shanghai","root","root")
// 全局配置
.globalConfig((scanner, builder) -> builder
.author("gjc")
.outputDir("D:\\text01\\src\\main\\java")
)
// 包配置
.packageConfig(
(scanner, builder) ->
builder
.parent("com.gjc")
.pathInfo(Collections.singletonMap(OutputFile.xml, "D:\\text01\\src\\main\\resources\\mapper")))
// 策略配置
.strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
.controllerBuilder().enableRestStyle().enableHyphenStyle()
.entityBuilder().enableLombok().addTableFills(
new Column("create_time", FieldFill.INSERT),
new Column("update_time", FieldFill.UPDATE),
new Column("create_user", FieldFill.INSERT),
new Column("update_user", FieldFill.UPDATE)
).build())
/*
模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
.templateEngine(new BeetlTemplateEngine())
.templateEngine(new FreemarkerTemplateEngine())
*/
.execute();
// 处理 all 情况
}
protected static List<String> getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
}