Springboot⾯试题整理
1、什么是springboot
⽤来简化spring应⽤的初始搭建以及开发过程 使⽤特定的⽅式来进⾏配置(properties或yml⽂件)
创建独⽴的spring引⽤程序 main⽅法运⾏
嵌⼊的Tomcat ⽆需部署war⽂件
简化maven配置
⾃动配置spring添加对应功能starter⾃动化配置
答:spring boot来简化spring应⽤开发,约定⼤于配置,去繁从简,just run就能创建⼀个独⽴的,产品级别的应⽤
2、Spring Boot有哪些优点?
答:-快速创建独⽴运⾏的spring项⽬与主流框架集成
-使⽤嵌⼊式的servlet容器,应⽤⽆需打包成war包
-starters⾃动依赖与版本控制
-⼤量的⾃动配置,简化开发,也可修改默认值
-准⽣产环境的运⾏应⽤监控
-与云计算的天然集成
3、如何重新加载Spring Boot上的更改,⽽⽆需重新启动服务器?
这可以使⽤DEV⼯具来实现。通过这种依赖关系,您可以节省任何更改,嵌⼊式tomcat将重新启动。
Spring Boot有⼀个开发⼯具(DevTools)模块,它有助于提⾼开发⼈员的⽣产⼒。Java开发⼈员⾯临的⼀个主要挑战是将⽂件更改⾃动部署到服务器并⾃动重启服务器。
开发⼈员可以重新加载Spring Boot上的更改,⽽⽆需重新启动服务器。这将消除每次⼿动部署更改的需要。Spring Boot在发布它的第⼀个版本时没有这个功能。
这是开发⼈员最需要的功能。DevTools模块完全满⾜开发⼈员的需求。该模块将在⽣产环境中被禁⽤。它还提供H2数据库控制台以更好地测试应⽤程序。
org.springframework.boot
spring-boot-devtools
true
4、Spring Boot中的监视器是什么?
Spring boot actuator是spring启动框架中的重要功能之⼀。Spring boot监视器可帮助您访问⽣产环境中正在运⾏的应⽤程序的当前状态。
有⼏个指标必须在⽣产环境中进⾏检查和监控。即使⼀些外部应⽤程序可能正在使⽤这些服务来向相关⼈员触发警报消息。监视器模块公开了⼀组可直接作为HTTP URL访问的REST端点来检查状态。
5、什么是YAML?
YAML是⼀种⼈类可读的数据序列化语⾔。它通常⽤于配置⽂件。
与属性⽂件相⽐,如果我们想要在配置⽂件中添加复杂的属性,YAML⽂件就更加结构化,⽽且更少混淆。可以看出YAML具有分层配置数据。
6、如何集成Spring Boot和ActiveMQ?
对于集成Spring Boot和ActiveMQ,我们使⽤spring-boot-starter-activemq依赖关系。 它只需要很少的配置,并且不需要样板代码。
7、springboot常⽤的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
8、springboot⾃动配置的原理
在spring程序main⽅法中 添加@SpringBootApplication或者@EnableAutoConfiguration
会⾃动去maven中读取每个starter中的spring.factories⽂件 该⽂件⾥配置了所有需要被创建spring容器中的bean
9、springboot读取配置⽂件的⽅式
springboot默认读取配置⽂件为application.properties或者是l
10、springboot集成mybatis的过程
添加mybatis的starter maven依赖
mybatis-spring-boot-starter
1.2.0
在mybatis的接⼝中 添加@Mapper注解
在l配置数据源信息
---------------------
作者:萧~X
原⽂:blog.csdn/xgr512/article/details/82698474
1.常见的starter会包⼏个⽅⾯的内容。分别是什么。
常见的starter会包括下⾯四个⽅⾯的内容
⾃动配置⽂件,根据classpath是否存在指定的类来决定是否要执⾏该功能的⾃动配置。
spring.factories,⾮常重要,指导Spring Boot到指定的⾃动配置⽂件。
endpoint:可以理解为⼀个admin,包含对服务的描述、界⾯、交互(业务信息的查询)。
health indicator:该starter提供的服务的健康指标。
两个需要注意的点:
1. @ConditionalOnMissingBean的作⽤是:只有对应的bean在系统中都没有被创建,它修饰的初始化代码块才会执⾏,【⽤户⾃⼰⼿动创建的bean优先】。
2. Spring Boot Starter到⾃动配置⽂件(xxxxAutoConfiguration之类的⽂件)的⽅式有两种:spring.factories:由Spring Boot触发探测classpath⽬录下的类,进⾏⾃动@EnableXxxxx:有时需要由starter的⽤户触发*查⾃动配置⽂件的过程
2.总结Spring Boot Starter的⼯作原理
Spring Boot Starter的⼯作原理如下:
1. Spring Boot 在启动时扫描项⽬所依赖的JAR包,寻包含spring.factories⽂件的JAR
2. 根据spring.factories配置加载AutoConfigure类
3. 根据 @Conditional注解的条件,进⾏⾃动配置并将Bean注⼊Spring Context
3.谈谈你对Spring Boot的认识。
spring Boot是⼀个开源框架,它可⽤于创建可执⾏的Spring应⽤程序,采⽤了习惯优于配置的⽅法。此框架的神奇之处在于@EnableAutoConfiguration注解,此注释⾃1. @Enable*注释 @Enable*注释并不是新发明的注释,早在Spring 3框架就引⼊了这些注释,⽤这些注释替代XML配置⽂件。很多Spring开发者都知道@EnableTran
2. 属性映射下⾯看MongoProperties类,它是⼀个Spring Boot属性映射的例⼦: @ConfigurationProperties(prefix = "db") public class MongoPro
3.@Conditional注释 Spring Boot的强⼤之处在于使⽤了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满⾜时才启⽤⼀些配置。在Spring Bo
4.应⽤程序上下⽂初始化器 spring.factories还提供了第⼆种可能性,即定义应⽤程序的初始化。这使得我们可以在应⽤程序载⼊前操纵Spring的应⽤程序上下⽂Applic
4.⾃定义springboot-starter注意事项
1. springboot默认scan的包名是其main类所在的包名。如果引⼊的starter包名不⼀样,需要⾃⼰添加scan。 @ComponentScan(basePackages = {"com.xixicat.demo
2. 对于starter中有feign的,需要额外指定 @EnableFeignClients(basePackages = {"com.xixicat.sms"})
3. 对于exclude⼀些autoConfig @EnableAutoConfiguration(exclude ={MetricFilterAutoConfiguration.class})
原⽂:
问题⼀ Spring Boot、Spring MVC 和 Spring 有什么区别?
SpringFrame
SpringFramework 最重要的特征是依赖注⼊。所有 SpringModules 不是依赖注⼊就是 IOC 控制反转。
springboot框架的作用当我们恰当的使⽤ DI 或者是 IOC 的时候,我们可以开发松耦合应⽤。松耦合应⽤的单元测试可以很容易的进⾏。
SpringMVC
Spring MVC 提供了⼀种分离式的⽅法来开发 Web 应⽤。通过运⽤像 DispatcherServelet,MoudlAndView 和 ViewResolver 等⼀些简单的概念,开发 Web 应⽤将会变的⾮常简单。
SpringBoot
Spring 和 SpringMVC 的问题在于需要配置⼤量的参数。
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<mvc:resources mapping="/webjars/**" location="/webjars/"/>
Spring Boot 通过⼀个⾃动配置和启动的项来⽬解决这个问题。为了更快的构建产品就绪应⽤程序,Spring Boot 提供了⼀些⾮功能性特征。
问题⼆ 什么是⾃动配置?
Spring 和 SpringMVC 的问题在于需要配置⼤量的参数。
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<mvc:resources mapping="/webjars/**" location="/webjars/"/>
我们能否带来更多的智能?当⼀个 MVC JAR 添加到应⽤程序中的时候,我们能否⾃动配置⼀些 beans?
Spring 查看(CLASSPATH 上可⽤的框架)已存在的应⽤程序的配置。在此基础上,Spring Boot 提供了配置应⽤程序和框架所需要的基本配置。这就是⾃动配置。
问题三 什么是 Spring Boot Stater ?
启动器是⼀套⽅便的依赖没描述符,它可以放在⾃⼰的程序中。你可以⼀站式的获取你所需要的 Spring 和相关技术,⽽不需要依赖描述符的通过⽰例代码搜索和复制黏贴的负载。
例如,如果你想使⽤ Sping 和 JPA 访问数据库,只需要你的项⽬包含 spring-boot-starter-data-jpa 依赖项,你就可以完美进⾏。
问题四 你能否举⼀个例⼦来解释更多 Staters 的内容?
让我们来思考⼀个 Stater 的例⼦ -Spring Boot Stater Web。
如果你想开发⼀个 web 应⽤程序或者是公开 REST 服务的应⽤程序。Spring Boot Start Web 是⾸选。让我们使⽤ Spring Initializr 创建⼀个 Spring Boot Start Web 的快速项⽬。
Spring Boot Start Web 的依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
下⾯的截图是添加进我们应⽤程序的不同的依赖项,依赖项可以被分为
Spring - core,beans,context,aop
Web MVC - (Spring MVC)
Jackson - for JSON Binding
Validation - Hibernate,Validation API
Enbedded Servlet Container - Tomcat
Logging - logback,slf4j
任何经典的 Web 应⽤程序都会使⽤所有这些依赖项。Spring Boot Starter Web 预先打包了这些依赖项。
作为⼀个开发者,我不需要再担⼼这些依赖项和它们的兼容版本。
问题五 Spring Boot 还提供了其它的哪些 Starter Project Options?
Spring Boot 也提供了其它的启动器项⽬包括,包括⽤于开发特定类型应⽤程序的典型依赖项。
spring-boot-starter-web-services - SOAP Web Services
spring-boot-starter-web - Web 和 RESTful 应⽤程序
spring-boot-starter-test - 单元测试和集成测试
spring-boot-starter-jdbc - 传统的 JDBC
spring-boot-starter-hateoas - 为服务添加 HATEOAS 功能
spring-boot-starter-security - 使⽤ SpringSecurity 进⾏⾝份验证和授权
spring-boot-starter-data-jpa - 带有 Hibeernate 的 Spring Data JPA
spring-boot-starter-data-rest - 使⽤ Spring Data REST 公布简单的 REST 服务
问题六 Spring 是如何快速创建产品就绪应⽤程序的?
Spring Boot 致⼒于快速产品就绪应⽤程序。为此,它提供了⼀些譬如⾼速缓存,⽇志记录,监控和嵌⼊式服务器等开箱即⽤的⾮功能性特征。
spring-boot-starter-actuator - 使⽤⼀些如监控和跟踪应⽤的⾼级功能
spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - 选择您的特定嵌⼊式 Servlet 容器
spring-boot-starter-logging - 使⽤ logback 进⾏⽇志记录
spring-boot-starter-cache - 启⽤ Spring Framework 的缓存⽀持
###Spring2 和 Spring5 所需要的最低 Java 版本是什么?
Spring Boot 2.0 需要 Java8 或者更新的版本。Java6 和 Java7 已经不再⽀持。
推荐阅读:
github/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes
问题七 创建⼀个 Spring Boot Project 的最简单的⽅法是什么?
Spring Initializr是启动 Spring Boot Projects 的⼀个很好的⼯具。
就像上图中所展⽰的⼀样,我们需要做⼀下⼏步:
登录 Spring Initializr,按照以下⽅式进⾏选择:
选择 com.in28minutes.springboot 为组
选择 studet-services 为组件
选择下⾯的依赖项
Web
Actuator
DevTools
点击⽣ GenerateProject
将项⽬导⼊ Eclipse。⽂件 - 导⼊ - 现有的 Maven 项⽬
问题⼋ Spring Initializr 是创建 Spring Boot Projects 的唯⼀⽅法吗?
不是的。
Spring Initiatlizr 让创建 Spring Boot 项⽬变的很容易,但是,你也可以通过设置⼀个 maven 项⽬并添加正确的依赖项来开始⼀个项⽬。
在我们的 Spring 课程中,我们使⽤两种⽅法来创建项⽬。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论