Spring Boot面试题

Spring Boot的优点

  • 快速创建独立运行的spring项目与主流框架集成
  • 使用嵌入式的servlet容器,应用无需打包成war包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可以修改默认值
  • 提供准生产环境的运行应用监控
  • 与云计算天然集成

Spring Boot常用的starter

  • spring-boot-starter-web(嵌入tomcat和web开发需要的servlet和jsp支持)
  • spring-boot-starter-data-jpa(数据库支持)
  • spring-boot-starter-data-redis(redis支持)
  • spring-boot-starter-data-solr(solr搜索应用框架支持)
  • mybatis-spring-boot-starter(第三方mybatis集成starter)

Spring Boot自动配置原理

Spring Boot开启的注解是@SpringBootApplication,其实它由三个注解组成@Configuration,@ComponentScan,@EnableAutoConfiguration。前面两个注解都是Spring的,和Spring Boot无关。Spring Boot最核心的注解就是@EnableAutoConfiguration。它能根据类路径下的jar包和配置动态加载配置和注入bean。

@EnableAutoConfiguration注解是一个派生注解,其中关键功能由@Import提供,其导入的AutoConfigurationImportSelector.class的selectImports()方法,通过SpringFactoriesLoader.loadFactoryNames()扫描所有具有META-INF/spring.factories的jar包。查找key是EnableAutoConfiguration类的全名,它的value是一个类名的列表,这些类名用逗号分隔。@EnableAutoConfiguration注解通过@SpringBootApplication被间接的标记在了Spring Boot的启动类上。在SpringApplication.run(...)的内部就会执行selectImports()方法,找到所有JavaConfig自动配置类的全限定名对应的class,然后将所有自动配置类加载到Spring容器中。

spring.factories里的每一个配置类上的主要注解有@Configuration,@ConditionalOnBean,@ConditionalOnMissingBean,@ConditionalOnClass,@ConditionalOnMissingClass等。在工厂方法上有@Bean注解,初始化对应的bean。
 

当然,我可以为您介绍一些常见的Spring Boot面试题。以下是一些常见的问题和答案: 1. 什么是Spring BootSpring Boot是一个用于创建独立的、基于Spring的应用程序的框架。它简化了Spring应用程序的配置和部署过程,并提供了一套开箱即用的功能,如自动配置、嵌入式服务器等。 2. Spring Boot的主要特点有哪些? - 简化配置:Spring Boot通过自动配置和约定大于配置的原则,减少了繁琐的配置。 - 内嵌服务器:Spring Boot可以使用内嵌的Tomcat、Jetty或Undertow服务器,无需外部容器。 - 自动配置:Spring Boot根据项目的依赖自动配置应用程序。 - 简化依赖管理:Spring Boot使用起步依赖(Starter)来管理依赖关系,简化了依赖管理。 - Actuator:Spring Boot提供了Actuator模块,可以监控和管理应用程序。 3. Spring Boot如何实现自动配置? Spring Boot通过条件注解和自动配置类实现自动配置。条件注解根据条件判断是否需要进行自动配置,自动配置类提供了默认的配置。 4. 如何在Spring Boot中配置数据源? 在Spring Boot中,可以通过在application.properties或application.yml文件中配置数据源相关属性来配置数据源。例如,可以配置数据库的URL、用户名、密码等。 5. 如何启用Spring Boot的日志输出? Spring Boot使用了Commons Logging作为日志抽象层,默认使用Logback作为日志实现。可以通过在application.properties或application.yml文件中配置相关属性来控制日志输出。 6. 如何在Spring Boot中实现跨域请求? 可以通过在控制器类或方法上添加@CrossOrigin注解来实现跨域请求。也可以通过配置WebMvcConfigurer来全局配置跨域请求。 7. 如何在Spring Boot中实现缓存? Spring Boot提供了对多种缓存技术的支持,如Ehcache、Redis等。可以通过在pom.xml文件中添加相应的依赖,并在配置文件中配置相关属性来启用缓存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值