当前位置: 首页 > article >正文

后端的config包中的常用配置

文章目录

  • 一. CorsConfig
  • 二. Knife4jConfig
  • 三. MyBatisPlusConfig
  • 四. RedisTemplateConfig
  • 五. RedissonConfig

一. CorsConfig

全局跨域配置

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 覆盖所有请求
        registry.addMapping("/**")
                // 允许发送 Cookie
                .allowCredentials(true)
                // 放行哪些域名(必须用 patterns,否则 * 会和 allowCredentials 冲突)
                .allowedOriginPatterns("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .exposedHeaders("*");
    }
}

二. Knife4jConfig

接口文档配置

@Configuration
@EnableSwagger2
@Profile("dev")
public class Knife4jConfig {

    @Bean
    public Docket defaultApi2() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("project-backend")
                        .description("project-backend")
                        .version("1.0")
                        .build())
                .select()
                // 指定 Controller 扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.***.project.controller"))
                .paths(PathSelectors.any())
                .build();
    }
}

三. MyBatisPlusConfig

MyBatis Plus配置

@Configuration
@MapperScan("com.***.project.mapper")
public class MyBatisPlusConfig {

    /**
     * 拦截器配置
     *
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

四. RedisTemplateConfig

RedisTemplate更适合于简单的Redis操作,比如简单缓存、简单消息队列。

通过新建 RedisTemplateConfig 配置类来创建自定义的 RedisTemplate Bean。

/**
 *
 *  自定义序列化
 *
 */
@Configuration
public class RedisTemplateConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        //创建RedisTemplate对象
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
       //设置连接工厂
        redisTemplate.setConnectionFactory(connectionFactory);
        //设置Key的序列化
        redisTemplate.setKeySerializer(RedisSerializer.string());

        //创建Json序列化工具
        GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
        //设置Value的序列化
        redisTemplate.setValueSerializer(jsonRedisSerializer);

        return redisTemplate;
    }
}

五. RedissonConfig

Redisson则提供了更高级的功能,比如分布式系统、集群和哨兵模式、RxJava集成。

Redisson 是一个 java 操作 Redis 的客户端,提供了大量的分布式数据集来简化对 Redis 的操作和使用,可以让开发者像使用本地集合一样使用 Redis,完全感知不到 Redis 的存在。

@Configuration
@ConfigurationProperties(prefix = "spring.redis")
@Data
public class RedissonConfig {

    private Integer database;

    private String host;

    private String password;

    private String port;
    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        config.useReplicatedServers()
                .setDatabase(database)
                .setPassword("".equals(password) ? null : password) // 这样没有密码就用默认值 null 有密码就用密码更加灵活
                .addNodeAddress(String.format("redis://%s:%s", host, port));
        return Redisson.create(config);
    }
}




http://www.kler.cn/a/516799.html

相关文章:

  • Java毕设项目:基于Springboot农机农业设备租赁网站系统设计与实现开题报告
  • 「全网最细 + 实战源码案例」设计模式——模式扩展(配置工厂)
  • index.php的备份文件名
  • scala文件编译相关理解
  • 前端发送Ajax请求的技术Axios
  • 【TypeScript】命名空间、模块、声明文件
  • 机器学习Pytorch实战(1)——安装Anaconda
  • 有限元分析学习——Anasys Workbanch第一阶段笔记(14)静定与超静定问题、约束类型介绍、简支梁挠度求解和自定义材料库建立
  • LINQ 和 LINQ 扩展方法(2)
  • 考研机试:买房子
  • 基于单片机的多功能蓝牙语音智能台灯(论文+源码)
  • C语言-构造数据类型
  • [Qt]系统相关-多线程、线程安全问题以及线程的同步机制
  • Spring Boot/MVC
  • kamailio-5.8.4-centos9编译
  • impala增加字段,hsql查不到数据
  • FastJson很快,有什么用?
  • 8.5 Whisper:解锁语音识别新高度的智能助手
  • 服务器交换区占用量查看
  • 3个基于.Net开发的、开源远程管理工具