Spring-boot

2019-01-14  本文已影响14人  五十米_深蓝

1、什么是springboot?
用来简化spring应用的初始搭建以及开发过程,使用特定的方式来进行配置(properties或yml文件),是Spring 开源组织下的子项目。
(1)特点:
创建独立的springboot应用程序,main方法运行;
嵌入的Tomcat 无需部署war文件;
简化maven配置;
自动配置spring添加对应功能starter自动化配置。
(2)优势:
独立运行、简化配置、自动配置、无代码生成和XML配置、应用监控、上手容易,
2、springboot常用的starter有哪些?
(1)spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
(2)spring-boot-starter-data-jpa 数据库支持(数据库驱动)
(3)spring-boot-starter-data-redis redis数据库支持
(4)spring-boot-starter-data-solr solr支持
(5 mybatis-spring-boot-starter 第三方的mybatis集成starter
3、springboot自动配置的原理?
在springboot应用程序main方法所在类中添加@SpringBootApplication或者@EnableAutoConfiguration
会自动去maven中读取每个starter中的spring.factories文件,该文件里配置了所有需要被创建spring容器中的bean。
4、springboot读取配置文件的方式?
springboot默认读取配置文件为application.properties或者是application.yml。
5、springboot如何添加【修改代码】自动重启功能?
添加开发者工具集=====spring-boot-devtools(热部署插件)。
6、什么是微服务?
以前的模式(单一应用模式)是所有的代码在同一个工程中,部署在同一个服务器中同一个项目的不同模块不同功能互相抢占资源;
微服务,将工程根据不同的业务规则拆分成微服务,微服务部署在不同的机器上,服务之间进行相互调用
Java微服务的框架有 dubbo(只能用来做微服务),spring-cloud(提供了服务的发现,断路器等)。
7、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@ComponentScan:Spring组件扫描。
8、开启 Spring Boot 特性有哪几种方式?
(1)继承spring-boot-starter-parent项目;
(1)导入spring-boot-dependencies项目依赖;
9、运行 Spring Boot 有哪几种方式?
(1)打包后用命令(jar)或者者放到容器中运行(war);
(2)用 Maven/ Gradle 插件运行;
(3)直接执行 main 方法运行;
10、Spring Boot 有哪几种读取配置的方式?
Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量。
11、Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
Spring Boot 支持 Logging, Log4j2, Lockback 作为日志框架,假如你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架,
12、Spring Boot 可以兼容老 Spring 项目吗,如何做?
可以兼容,使用@ImportResource注解导入老 Spring 项目配置文件。
13、什么是JavaConfig?
Spring JavaConfig是Spring社区的产品,它提供了配置Spring IoC容器的纯Java方法。因此它有助于避免使用XML配置。几乎消除了xml配置文件,只需添加用@ Configuration注释的类,然后添加用@Bean注释的方法,Spring将自动加载对象并像以前一样对其进行管理,
14、Spring Boot中的监视器是什么?
Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。监视器模块公开了一组可直接作为HTTP URL(health与info)访问的REST端点来检查状态。
15、如何实现Spring Boot应用程序的安全性?
为了实现Spring Boot的安全性,我们使用 spring-boot-starter-security依赖项,并且必须添加安全配置,配置类将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。
16、如何使用Spring Boot实现分页和排序?
使用Spring Boot实现分页非常简单。使用Spring Data-JPA可以实现将可分页的
org.springframework.data.domain.Pageable传递给存储库方法。
17、如何使用Spring Boot实现异常处理?
Spring提供了一种使用ControllerAdvice处理异常的非常有用的方法。 我们通过实现一个ControlerAdvice类,来处理控制器类抛出的所有异常。
18、什么是CSRF攻击?
CSRF代表跨站请求伪造。这是一种攻击,迫使最终用户在当前通过身份验证的Web应用程序上执行不需要的操作。CSRF攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。
19、Spring Boot Starter的工作原理?

  1. Spring Boot 在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR。
  2. 根据spring.factories配置加载AutoConfigure类。
  3. 根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context。
    20、Spring Boot 用户应用程序自定义配置的最好方法是什么?
    @Value 的问题在于,您可以通过应用程序分配你配置值。更好的操作是采取集中的方法。
    你可以使用 @ConfigurationProperties 定义一个配置组件。
@Component
@ConfigurationProperties("basic")
public class BasicConfiguration {
    private boolean value;
    private String message;
    private int number;

你可以在 application.properties 中配置参数。

basic.value: true
basic.message: Dynamic Message
basic.number: 100

21、springboot自动配置的原理
1.springboot自动去maven中读取每个starter中(也就是springboot依赖的jar包)的spring.factories文件,该文件里配置了所有需要被创建spring容器中的bean。
2.使用@SpringbootApplication注解,可以解决根类或者配置类(main所在程序入口类)头上注解过多的问题,一个@SpringbootApplication相当于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值。
22、总结Spring Boot Starter的工作原理

1. Spring Boot 在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR
2. 根据spring.factories配置加载AutoConfigure类
3. 根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context
上一篇下一篇

猜你喜欢

热点阅读