004-SpringSecurity-Demo 拆分环境

SpringSecurity-Demo 拆分环境

前言

将单环境配置 application.yml 按 Profile 拆分为 application-dev.yml(开发)与 application-prod.yml(生产),实现配置环境隔离。

  • 拆分后的项目结构如下:

实施

代码已推送至 Gitee 仓库:springdecurity-demo

  1. resources 文件夹中,新建两个配置文件applicaiton-dev.ymlapplication-prod.yml
  • application-dev.yml 文件内容参考:
xml 复制代码
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/security?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=
    username: root
    password: 123456

junjiu:
  custom:
    resource-path: ./file
  • application-prod.yml 文件内容参考:
xml 复制代码
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/security?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=
    username: root
    password: 123456
  1. 修改 application.yml 文件,内容如下:
xml 复制代码
server:
  port: 5826

spring:
  profiles:
    active: dev
  application:
    name: security-demo

logging:
  level:
    # 日志级别:debug < info < warn < error
    com.junjiu.springboot3: debug
    org.springframework: warn
  1. 添加 ApplicationConfig 配置类

@Profile("dev") 注解可激活 Bean 适配哪个环境

java 复制代码
@Configuration
public class ApplicationConfig {
    @Bean
    @Profile("dev") // 非生产环境使用
    public Jackson2ObjectMapperBuilderCustomizer customizer() {
        return new Jackson2ObjectMapperBuilderCustomizer() {
            @Override
            public void customize(Jackson2ObjectMapperBuilder builder) {
                builder.indentOutput(true);
            }
        };
    }

    // 设置时区,为系统默认时区
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return new Jackson2ObjectMapperBuilderCustomizer() {
            @Override
            public void customize(Jackson2ObjectMapperBuilder builder) {
                builder.timeZone(TimeZone.getDefault());
            }
        };
    }
}
相关推荐
Seven9710 小时前
一致性Hash算法:如何实现分布式系统中的高效数据分片?
java
摇滚侠10 小时前
IDEA 生成 try catch 快捷键
java·ide·intellij-idea
阿旭超级学得完10 小时前
C++11包装器(function和bind)
java·开发语言·c++·算法·哈希算法·散列表
掉鱼的猫11 小时前
Spring AI 2.0 GA 倒计时:先别急,来看看 Java AI 框架的另一条路
java·openai·agent
Refrain_zc11 小时前
Android 应用内 APK 安装全方案:从静默安装到普通安装的详解
java
正儿八经的少年12 小时前
Spring Boot 两种激活配置方式的作用与区别
java·spring boot·后端
云烟成雨TD12 小时前
Spring AI Alibaba 1.x 系列【52】Interrupts 中断机制:节点执行前后静态中断
java·人工智能·spring
疯狂成瘾者12 小时前
Spring Boot 项目中的 SMTP 邮件验证码服务技术解析
java·spring boot·后端
y = xⁿ12 小时前
Java并发八股学习日记
java·开发语言·学习