企业网站建设的一般要素包括什么,开发软件公司,html5手机商城网站模板,百度竞价外包1. 什么是 Spring Boot#xff1f;【重点】
多年来#xff0c;随着新功能的增加#xff0c;Spring变得越来越复杂#xff1b;一个Spring项目#xff0c;我们必须做添加构建路径或添加Maven依赖关系#xff0c;配置应用程序服务器#xff0c;添加Spring配置等工作#…1. 什么是 Spring Boot【重点】
多年来随着新功能的增加Spring变得越来越复杂一个Spring项目我们必须做添加构建路径或添加Maven依赖关系配置应用程序服务器添加Spring配置等工作因此创建一个Spring项目需要很多配置过程复杂。
Spring Boot是解决这个问题的方法建立在现有Spring框架之上避免了之前我们必须做的所有模板代码和配置Spring Boot帮助我们以最少的工作量更加健壮地使用现有的Spring功能。
2. Spring Boot有哪些优点【重点】
独立运行
Spring Boot而且内嵌了各种Servlet容器Tomcat、Jetty等现在不再需要打成WAR包部署到容器中Spring Boot只要打成一个可执行的JAR包就能独立运行所有的依赖包都在一个JAR包内。
简化配置
spring-boot-starter-web启动器自动依赖其他组件简少了Maven的配置。
自动配置
Spring Boot能根据当前类路径下的类、JAR包来自动配置Bean如添加一个spring-boot-starter-web启动器就能拥有Web的功能无需其他配置。
无代码生成和XML配置
Spring Boot配置过程中无代码生成也无需XML配置文件就能完成所有配置工作这一切都是借助于条件注解完成的这也是Spring4.x的核心功能之一。
应用监控
Spring Boot提供一系列端点可以监控服务及应用做健康检测。
3. Spring Boot Starter作用是什么有哪些常见的Starter【了解】
当一个项目变得相当复杂管理依赖会成为一个噩梦因为当中涉及太多artifacts了这时候Spring Boot Starter就派上用处了每一个Stater都在扮演着提供我们所需的Spring特性的一站式角色其所需的依赖以一致的方式注入并且被管理。
常用的Starter
spring-boot-starterSpringBoot核心Starter包括自动化配置支持日志以及YAML等
spring-boot-starter-aop使用Spring AOP和AspectJ相关切面编程的Starter
spring-boot-starter-data-redis使用Spring data redis的Starter
spring-boot-starter-jdbc使用JDBC连接池的Starter
spring-boot-starter-security使用Spring安全的Starter
spring-boot-starter-test使用测试相关的Starter
spring-boot-starter-web构建RESTFUL、Spring MVC的Web应用程序的Starter。
4. Spring Boot、Spring MVC和Spring有什么区别【重点】
分别描述各自的特征
Spring框架就像一个家族有众多衍生产品例如Boot、Security、JPA等等但他们的基础都是Spring 的IOC和AOPIOC提供了依赖注入的容器AOP解决了面向切面编程然后在此两者的基础上实现了其他延伸产品的高级功能。
Spring MVC提供了一种轻度耦合的方式来开发Web应用它是Spring的一个模块是一个Web框架通过DispatcherServlet、ModelAndView和View Resolver开发Web应用变得很容易解决的问题领域是网站应用程序或者服务开发等。
Spring Boot实现了Auto-configuration自动配置降低了项目搭建的复杂度。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题所以它并不是用来替代Spring的解决方案而是和Spring框架紧密结合用于提升Spring开发者体验的工具同时它集成了大量常用的第三方库配置例如Jackson, JDBC, Mongo, Redis, Mail等等Spring Boot应用中这些第三方库几乎可以零配置的开箱即用。
所以用最简练的语言概括就是:
Spring是一个“引擎”
Spring MVC是基于Spring的一个MVC框架
Spring Boot是基于Spring的一套快速开发整合包。
5. Spring Boot的核心配置文件有哪几个它们的区别是什么【重点】
Spring Boot的核心配置文件是application和bootstrap配置文件。
application配置文件这个容易理解主要用于Spring Boot项目的自动化配置。
bootstrap配置文件有以下几个应用场景。
使用 Spring Cloud Config配置中心时这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息
一些固定的不能被覆盖的属性
一些加密/解密的场景。
6. Spring Boot的配置文件有哪几种格式它们有什么区别【了解】
properties和yml它们的区别主要是书写格式不同
properties app.user.name javastack
yml app:user :name: javastack
yml格式不支持 PropertySource 注解
properties配置文件优先级高于yml配置文件。
7. Spring Boot的核心注解是哪个它主要由哪几个注解组成的【重点】
Spring Boot的核心注解是SpringBootApplication使用在启动类上主要组合包含3个注解
SpringBootConfiguration组合了Configuration注解实现配置文件的功能
EnableAutoConfiguration打开自动配置的功能也可以关闭某个自动配置的选项
如关闭数据源自动配置功能 SpringBootApplication(exclude { DataSourceAutoConfiguration.class })
ComponentScanSpring组件扫描。
8. 运行Spring Boot应用程序有哪几种方式【重点】
打成JAR包使用命令运行或者打成War发布到容器中运行
使用Maven命令运行Spring Boot项目mvn spring-boot:run。
直接执行应用程序的main方法运行。
9. Spring Boot如何实现热部署【掌握】
引用Devtools依赖
dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-devtools/artifactId optionaltrue/optional /dependency 自定义配置热部署 热部署开关false即不启用热部署 spring.devtools.restart.enabledtrue 指定热部署的目录 spring.devtools.restart.additional-paths:src/main/java 指定目录不更新 spring.devtools.restart.exclude test/** 如果是idea需要更改以下两个地方配置 设置自动编译 File Settings Compiler-Build Project automatically 注册项目运行时允许自动编译 ctrl shift alt / Registry 勾选Compiler autoMake allow when app running 生产环境Devtools将被禁用 打包应用默认不会包含Devtools除非你禁用Spring Boot Maven插件的Exclude Devtools属性 Thymeleaf无需配置spring.thymeleaf.cache:falseDevtools默认会自动设置。
10. Spring Boot支持哪些日志框架默认的日志框架是哪个【了解】
Spring Boot支持Java Util LoggingLog4j2Lockback作为日志框架Spring Boot使用Logback作为默认日志框架。
Spring-boot-starter启动器包含Spring-boot-starter-logging启动器并集成了slf4j日志抽象及Logback日志框架。
11. Spring Boot如何定义多套不同环境配置【重点】
Spring Boot可以使用多profile方式实现定义多套不同环境配置文件。 applcation.properties默认配置文件此文件需要指定使用哪一个profile application-dev.properties开发环境配置文件 application-test.properties测试环境配置文件 application-prod.properties生产环境配置文件。 如果使用YAML格式可以使用一个配置文件来实现 spring: profiles: active: prod --- spring: profiles: prod server: port: 8080 --- spring: profiles: test server: port: 8081 使用Java代码指定profile Configuration Profile(prod) public class ProductionConfiguration {} 运行时指定Profile main方法启动方式 --spring.profiles.activeprod 插件启动方式 mvn spring-boot:run -Drun.profilesprod jar运行方式 java -jar xx.jar --spring.profiles.activeprod 启动类中指定profile添加如下方法 public void setAdditionalProfiles(String... profiles) { this.additionalProfiles new LinkedHashSetString(Arrays.asList(profiles)); }
12. Spring Boot中的监视器是什么【了解】
Spring Boot中的监视器是Spring Boot Actuator是Spring框架中的重要功能之一
Spring Boot Actuator可帮助您访问生产环境中正在运行的应用程序的当前状态
Spring Boot Actuator可以帮助你监控系统数据的框架可以查看应用配置的详细信息如应用程序的健康信息应用程序基本信息应用程序的HTTP Request跟踪信息应用程序的Metrics信息应用程序的RequestMapping的路径信息应用程序的各种配置信息应用程序的请求的次数、时间、等各种信息。
13. Spring Boot自动配置的原理是什么【重点】
Spring Boot启动的时候通过EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中所有的自动配置类并对其进行加载
这些自动配置类的类名都是以AutoConfiguration结尾来命名的它实际上就是一个Spring容器配置类它们都有一个EnableConfigurationPerperties的注解通过这个注解启动以Properties为后缀的类去加载全局配置中的属性
以Properties为后缀的类通过ConfigurationProperties注解将全局配置文件中的属性与自己的属性进行绑定。
14. Spring Boot配置加载顺序?【重点】
properties文件
YAML文件
系统环境变量
命令行参数。