• Spring Boot 面试热点(二)


    在上一部分中,我们介绍了 Spring Boot 的优势、项目结构和自动配置原理。本部分将继续探讨 Spring Boot 的 Starter、配置文件和安全机制,这些都是面试中常见的问题。

    1. Spring Boot Starter

    常用 Starter

    • spring-boot-starter-web: 用于构建 web 应用,包含 Spring MVC 和内嵌的 Tomcat 服务器。
    • spring-boot-starter-data-jpa: 用于与数据库交互,包含 Hibernate 和 Spring Data JPA。
    • spring-boot-starter-security: 提供安全认证和授权功能。
    • spring-boot-starter-test: 提供常用的测试库,如 JUnit、Mockito 等。

    自定义 Starter

    • 创建模块: 创建一个新的 Maven/Gradle 模块。
    • 添加依赖: 在模块的 pom.xmlbuild.gradle 中添加依赖。
    • 自动配置: 创建自动配置类,并在 META-INF/spring.factories 文件中注册。
    • 发布: 将模块发布到 Maven 中央仓库或内部仓库。

    2. Spring Boot 配置文件

    配置文件类型

    • application.properties: 默认的属性配置文件。
    • application.yml: 支持 YAML 格式的配置文件。

    多环境配置

    • Profile: 通过 spring.profiles.active 属性指定激活的环境配置。
    • 多文件: 使用 application-{profile}.propertiesapplication-{profile}.yml 文件管理不同环境的配置。
    # application.properties
    spring.profiles.active=dev
    
    # application-dev.properties
    server.port=8081
    
    # application-prod.properties
    server.port=8080
    

    外部配置

    • 命令行参数: 通过命令行参数传递配置,如 --server.port=8080
    • 环境变量: 通过环境变量配置,如 export SERVER_PORT=8080
    • 配置中心: 使用 Spring Cloud Config 等配置中心管理配置。

    3. Spring Boot 安全

    基本认证

    • 依赖: 添加 spring-boot-starter-security 依赖。
    • 配置: 默认提供基于内存的用户名和密码认证。

    自定义安全配置

    • 扩展 WebSecurityConfigurerAdapter: 自定义安全配置类,重写 configure 方法。
    java复制代码import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    
    @Configuration
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                .antMatchers("/public/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .and()
                .httpBasic();
        }
    }
    

    JWT 认证

    • 依赖: 添加 jjwt 依赖。
    • 生成和验证: 使用 JWT 生成和验证用户令牌,实现无状态认证。

    结语

    本文介绍了 Spring Boot 的 Starter、配置文件和安全机制,这些都是 Spring Boot 开发中非常重要的部分。通过熟练掌握这些内容,你可以在面试中展示出对 Spring Boot 深入理解和实际应用的能力。

  • 相关阅读:
    C语言文件操作——数据文件类型、文件判断、文件缓冲区详解
    定时任务cron与crontab
    《计算机网络》第一章学习随笔
    十大网站助力人工智能学习之路
    最近收藏的好用免费API集合
    南京市玄武区委常委、组织部部长任宁一行率企业家研修班莅临麒麟信安调研交流
    链表OJ题(1)
    2022最新一线大厂Java八股文合集PDF版震撼开源,堪称史上最强
    废酸除油、除COD、脱色资源再生
    机器学习的超参数 、训练集、归纳偏好
  • 原文地址:https://blog.csdn.net/YeJingLiangZuo/article/details/139601031