SpringBoot 面试题, Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
SpringBoot 面试题, Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
QA
Step 1
Q:: Spring Boot 打成的 jar 和普通的 jar 有什么区别?
A:: Spring Boot 打成的 jar 文件称为可执行 jar,它包含了内嵌的服务器(如 Tomcat、Jetty 等),可以直接运行,而普通的 jar 文件只是简单的 Java 类库,需要外部服务器或应用容器来运行。Spring Boot 的可执行 jar 包括了所有应用运行所需的依赖,简化了部署过程。
Step 2
Q:: Spring Boot 是如何实现自动配置的?
A:: Spring Boot 通过自动配置(Auto-Configuration)功能,根据项目类路径中的依赖、定义的 Bean 和配置来自动配置 Spring 应用。主要依靠 @EnableAutoConfiguration 注解和 spring.
factories 文件,Spring Boot 会扫描类路径,加载符合条件的配置类,简化开发过程。
Step 3
Q:: Spring Boot 的启动过程是怎样的?
A:: Spring Boot 启动过程包括以下几个步骤:1. 加载主类(Main Class),执行 main 方法。2. 创建并配置 SpringApplication 实例。3. 准备环境(Environment),包括系统环境变量和应用配置。4. 创建 ApplicationContext 并进行自动配置。5.
调用所有 CommandLineRunner 和 ApplicationRunner 实例。
Step 4
Q:: 如何在 Spring Boot 项目中进行数据库配置?
A:: 在 Spring Boot 项目中,数据库配置通常在 application.properties 或 application.yml 文件中完成。常见配置项包括数据库连接 URL、用户名、密码、驱动类等。Spring Boot 也支持使用 @
Configuration 类进行更复杂的数据库配置,并可结合 Spring Data JPA 实现数据访问层。
Step 5
Q:: Spring Boot 如何实现日志管理?
A:: Spring Boot 默认使用 SLF4J 作为日志门面,结合 Logback、Log4J2 等具体日志实现。可以在 application.properties 或 application.
yml 文件中配置日志级别、日志格式和输出位置。也可以通过引入不同的日志依赖来切换日志实现。