2024年Java最新2024最新Spring Boot 面试题,面试4个月被17家公司拒绝

文章介绍了如何正确掌握Redis,提供了面试题汇总、SpringBootStarters的原理和使用,涉及配置SpringBoot的多种方式,以及SpringBoot支持的日志框架和配置。还提到了Java核心知识点和架构师学习资源的相关链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

那么如何才能正确的掌握Redis呢?

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题

  • 并发编程面试题汇总

  • JVM面试题汇总

  • Netty常被问到的那些面试题汇总

  • Tomcat面试题整理汇总

  • Mysql面试题汇总

  • Spring源码深度解析

  • Mybatis常见面试题汇总

  • Nginx那些面试题汇总

  • Zookeeper面试题汇总

  • RabbitMQ常见面试题汇总

JVM常频面试:

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(一)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(二)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Redis常见面试题汇总(300+题)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

这个方法会加载类路径及所有jar包下META-INF/spring.factories配置中映射的自动配置的类。

你如何理解 Spring Boot 中的 Starters?


Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要加入spring-boot-starter-data-jpa启动器依赖就能使用了。

Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。

Spring Boot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。

第三方的启动器不能以spring-boot开头命名,它们都被Spring Boot官方保留。一般一个第三方的应该这样命名,像mybatis的mybatis-spring-boot-starter。

如何在 Spring Boot 启动的时候运行一些特定的代码?


如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口 ApplicationRunner或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个run方法。

如果启动的时候有多个ApplicationRunner和CommandLineRunner,想控制它们的启动顺序,可以通过@Order注解控制

Spring Boot 有哪几种读取配置的方式?


  • @Value

@Component

public class HttpClientParam {

@Value(“${http.maxTotal}”)

private Integer maxTotal;

public String getMaxTotal() {

return maxTotal;

}

public void setMaxTotal(String maxTotal) {

this.maxTotal = maxTotal;

}

}

  • @ConfigurationProperties

/**

  • HttpClient连接池

  • @author hzy

*/

@Configuration

@ConfigurationProperties(prefix = “http”)

public class HttpClientParam {

private Integer maxTotal;

private Integer defaultMaxPerRoute;

private Integer connectTimeout;

private Integer connectionRequestTimeout;

private Integer socketTimeout;

public Integer getMaxTotal() {

return maxTotal;

}

public void setMaxTotal(Integer maxTotal) {

this.maxTotal = maxTotal;

}

public Integer getDefaultMaxPerRoute() {

return defaultMaxPerRoute;

}

public void setDefaultMaxPerRoute(Integer defaultMaxPerRoute) {

this.defaultMaxPerRoute = defaultMaxPerRoute;

}

public Integer getConnectTimeout() {

return connectTimeout;

}

public void setConnectTimeout(Integer connectTimeout) {

this.connectTimeout = connectTimeout;

}

public Integer getConnectionRequestTimeout() {

return connectionRequestTimeout;

}

public void setConnectionRequestTimeout(Integer connectionRequestTimeout) {

this.connectionRequestTimeout = connectionRequestTimeout;

}

public Integer getSocketTimeout() {

return socketTimeout;

}

public void setSocketTimeout(Integer socketTimeout) {

this.socketTimeout = socketTimeout;

}

}

http:

最大连接数

maxTotal: 100

并发数

defaultMaxPerRoute: 20

connectTimeout: 10000

connectionRequestTimeout: 500

socketTimeout: 10000

  • @PropertySource+@Value

@Component

@PropertySource(value = { “config/http-config.properties”})

public class HttpClientParam {

@Value(“${http.maxTotal}”)

private Integer maxTotal;

public String getMaxTotal() {

return maxTotal;

}

public void setMaxTotal(String maxTotal) {

this.maxTotal = maxTotal;

}

}

Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?


Spring Boot支持Java Util Logging,Log4j2,Lockback作为日志框架,如果你使用starters启动器,Spring Boot将使用Logback作为默认日志框架。无论使用哪种日志框架,Spring Boot都支持配置将日志输出到控制台或者文件中。

spring-boot-starter启动器包含spring-boot-starter-logging启动器并集成了slf4j日志抽象及Logback日志框架。

属性配置日志


Spring Boot支持属性配置日志参数,这个不是很灵活,不细讲。

参考配置:

LOGGING

logging.config= # Location of the logging configuration file. For instance classpath:logback.xml for Logback

logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.

logging.file= # Log file name. For instance myapp.log

logging.level.*= # Log levels severity mapping. For instance logging.level.org.springframework=DEBUG

logging.path= # Location of the log file. For instance /var/log

logging.pattern.console= # Appender pattern for output to the console. Only supported with the default logback setup.

logging.pattern.file= # Appender pattern for output to the file. Only supported with the default logback setup.

logging.pattern.level= # Appender pattern for log level (default %5p). Only supported with the default logback setup.

logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.

如:

logging.level.root=DEBUG

logging.level.org.springframework.web=DEBUG

logging.level.org.hibernate=ERROR

自定义日志文件


根据不同的日志框架,默认加载的日志配置文件的文件名,放在资源根目录下,其他的目录及文件名不能被加载。

| Logging System | Customization |

| — | — |

| Logback | logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy |

| Log4j2 | log4j2-spring.xml or log4j2.xml |

| JDK (Java Util Logging) | logging.properties |

既然默认自带了Logback框架,Logback也是最优秀的日志框架,往资源目录下创建一个logback-spring.xml即可,下面是一个参考配置文件。

<?xml version="1.0" encoding="UTF-8"?>

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

INFO

L O G P A T H / {LOG_PATH}/ LOGPATH/{LOG_DIR}/info.log.%d{yyyy-MM-dd}.log

30

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

10MB

ERROR

ACCEPT

DENY

L O G P A T H / {LOG_PATH}/ LOGPATH/{LOG_DIR}/error.log.%d{yyyy-MM-dd}.log

30

最后

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

y-MM-dd}.log

30

最后

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
[外链图片转存中…(img-gHNyWxwa-1714903896183)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值