首页  

springboot面试题     所属分类 springboot 浏览量 1193
与 Spring 的区别
约定大于配置 Javaconfig Starter  自动配置  Actuator  内嵌容器
优点  编码 配置 监控 部署 变得简单
springboot缺点
集成度封装度高,出了问题,难排查


Actuator的作用 监控和管理应用 健康检查、审计、统计和HTTP追踪等 JMX HTTP endpoints 与外部应用监控系统整合 比如 Prometheus, Graphite , DataDog, Influx, Wavefront 等 Actuator使用Micrometer 整合外部应用监控系统 spring-boot-starter-actuator 常用的内置端点 auditevents 审计事件信息 env 环境属性 health 显示应用程序运行状况信息 httptrace 显示HTTP跟踪信息 info 显示应用程序信息 metrics 显示指标信息 mappings: 显示所有@RequestMapping路径的列表 scheduledtasks: 显示应用程序中的计划任务 threaddump: 执行线程转储 beans :所有加载的spring bean
单元测试 @SpringBootTest springboot2单元测试
支持哪些外部配置 properties文件 YAML文件 环境变量 系统属性和命令行选项参数 @Value 注入 @ConfigurationProperties 绑定参数 Environment 直接获取 String getProperty(String key); 命令行选项参数 -server.port = 8080 application.properties 在当前目录,类路径根目录或其config子目录中搜索该文件 application-{profile}.properties 一般情况先加载yml,再加载properties文件,后加载的优先级高,会覆盖前面的配置 外部配置加载顺序 java -jar xxx.jar --server.port=8088 --spring.config.location=/home/xxx/application.properties 命令行参数 jar包外部配置优先 profile 优先 ./config/ ./ classpath:/config/ classpath:/
自动配置原理 springboot自动配置原理和实例
如何根据不同的条件来加载bean @Conditional系列注解 @ConditionalOnMissingBean value 要检查的bean类型 name 要检查的bean名称 @ConditionalOnMissingBean public XxxBean xxxBean(){...} 不存在XxxBean类型的bean则初始化该bean
如何禁用特定的自动配置 @EnableAutoConfiguration 的 exclude 属性 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, XxxAutoConfiguration.class}) 或者 application.properties spring.autoconfigure.exclude
核心注解 @Configuration @ComponentScan @EnableAutoConfiguration @SpringBootApplication 包含了以上 3 个注解
starter 依赖管理 ,以一致的方式传递和管理依赖 官方starter spring-boot-starter-xxx 非官方starter xxx-spring-boot-starter 譬如 mybatis-spring-boot-starter 最常用的starter spring-boot-starter 核心,包括自动配置支持,日志和YAML spring-boot-starter-aop Spring AOP和AspectJ spring-boot-starter-data-jpa Spring Data JPA和Hibernate spring-boot-starter-jdbc JDBC与HikariCP连接池 spring-boot-starter-security Spring Security spring-boot-starter-tes spring-boot-starter-web Spring MVC构建Web应用,包括RESTful应用
Maven配置springboot ,开启 springboot 特性 1)继承 spring-boot-starter-parent 项目 2)导入 spring-boot-dependencies 项目依赖 在 pom.xml 中配置 parent <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> import 方式 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.0.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
ApplicationContextInitializer ApplicationRunner CommandLineRunner springboot ApplicationContextInitializer 使用
运行 SpringBoot应用的几种方式 放到容器中运行 直接执行 main 方法运行 Maven插件运行 Maven命令行直接运行SpringBoot项目
日志框架 默认日志框架 Logback
热部署几种方式 Spring Loaded Spring-boot-devtools Jrebel 模版热部署
如何定义多套环境 applcation.properties application-dev.properties application-test.properties application-prod.properties spring.profiles.active=a,b,c --spring.profiles.active=dev spring-boot:run -Drun.profiles=dev java -jar xxx.jar --spring.profiles.active=dev
如何兼容老的spring项目 @ImportResource 导入 xml 配置文件 @ImportResource("classpath:beans.xml") @ImportResource(locations = {"classpath:spring.xml"})
如何修改端口号 配置文件 server.port=8888 java -jar xxx.jar ——server.port=8888 java -Dserver.port=8888 -jar xxx.jar
异常处理相关注解 @ControllerAdvice @ExceptionHandler
配置读取相关注解 @PropertySource @Value @Environment @ConfigurationProperties

上一篇     下一篇
MongoDB优缺点

延迟任务处理总结

springboot最核心的三个注解

springboot自动配置原理和实例

ConcurrentHashMap使用注意点

SpringCloud VS Dubbo