美文网首页
springboot

springboot

作者: 星野君 | 来源:发表于2022-06-11 11:19 被阅读0次

    1、谈谈你对Spring Boot的理解?

    SpringBoot主要用来简化使用Spring的难度和繁重的XML配置,它是Spring组件的一站式解决方案,采取了习惯优于配置的方法。通过.properties或者.yml文件替代了Spring繁杂的XML配置文件,同时支持@ImportResource注解加载XML配置。Spring Boot还提供了嵌入式HTTP服务器、命令行接口工具、多种插件等等,使得应用程序的测试和开发简单起来。
    
    1、可以快速构建项目;
    
    2、可以对主流开发框架的无配置集成;
    
    3、项目可独立运行,无需外部依赖Servlet容器;
    
    4、提供运行时的应用监控;
    
    5、可以极大地提高开发、部署效率;
    
    6、可以与云计算天然集成。
    

    2、Spring Boot Starter有什么用?

    Spring Boot通过提供众多起步依赖(Starter)降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型(Project Object Model, POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或某类功能。
    

    举例来说,你打算把这个阅读列表应用程序做成一个Web应用程序。与其向项目的构建文件里添加一堆单独的库依赖,还不如声明这是一个Web应用程序来得简单。你只要添加Spring Boot的Web起步依赖就好了。

    3、 介绍Spring Boot的启动流程;*

    1. 首先从main找到run()方法,在执行run()方法之前new一个SpringApplication对象
    2. 进入run()方法,创建应用监听器SpringApplicationRunListeners开始监听
    3. 然后加载SpringBoot配置环境(ConfigurableEnvironment),然后把配置环境(Environment)加入监听对象中
    4. 然后加载应用上下文(ConfigurableApplicationContext),当做run方法的返回对象
    5. 最后创建Spring容器,refreshContext(context),实现starter自动化配置和bean的实例化等工作。

    4、请描述Spring Boot自动装配的过程;*

    启动类的@SpringBootApplication注解由@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个注解组成,三个注解共同完成自动装配;

    @SpringBootConfiguration 注解标记启动类为配置类
    @ComponentScan 注解实现启动时扫描启动类所在的包以及子包下所有标记为bean的类由IOC容器注册为bean
    @EnableAutoConfiguration帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot,并创建对应配置类的Bean,并把该Bean实体交给IoC容器进行管理。

    5、说说你对Spring Boot注解的了解;*

    1、@SpringBootapplication注解:
    
    在Spring Boot入口类中,唯一的一个注解就是@SpringBootapplication。它是Spring Boot项目的核心注解,用于开启自动配置,准确说是通过该注解内组合的@EnableAutoConfiguration开启了自动配置。
    
    2、@EnableAutoConfiguration注解:
    
    允许 Spring Boot 自动配置注解,开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。
    
    3、@Conditional注解:
    
    @Conditional注解是由Spring 4.0版本引入的新特性,可根据是否满足指定的条件来决定是否进行Bean的实例化及装配。
    

    6、Spring、SpringMVC和Springboot的区别;*

    1、Spring

      Spring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。
    
         当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测      试可以很容易的进行。
    

    2、Spring MVC

      Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,   MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。
    

    3、SpringBoot

    Spring 和 SpringMVC 的问题在于需要配置大量的参数。
    

    7、关于SpringBoot配置的一些问题;

    1、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
    Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

    application 配置文件主要用于 Spring Boot 项目的自动化配置。 bootstrap 配置文件有三个应用场景。 使用Spring Cloud Config配置中心时,需要在 bootstrap 配置文件中添加连接到配置中心的配置属性,来加载外部配置中心的配置信息; 一些固定的不能被覆盖的属性; 一些加密或解密的场景;

    2、Spring Boot 的配置文件有哪几种格式?它们有什么区别?
    主要有.properties 和 .yml格式,它们的区别主要是书写格式不同。另外,.yml 格式不支持 @PropertySource 注解导入配置。

    3、你如何理解 Spring Boot 配置加载顺序?
    Spring Boot配置加载顺序优先级是:propertiese文件、YAML文件、系统环境变量、命令行参数。

    4、 什么是YAML,有什么优点。
    YAML 是一种可读的数据序列化语言,它通常用于配置文件。

    优点:

    配置有序
    
    支持数组,数组中的元素可以是基本数据类型或者对象 
    
    简洁方便
    

    5、Spring Boot 是否可以使用 XML 配置 , Spring Boot 可以兼容老 Spring 项目吗;

    Spring Boot 推荐使用 Java 配置同时支持 XML 配置,通过 @ImportResource 注解加载 XML 配置;
    

    可以兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。

    6、application.properties和bootstrap.properties有何区别;
    bootstrap比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效, 而且boostrap 里面的属性不能被覆盖; application用于 spring boot 项目的自动化配置。
    7、SpringBoot 中如何实现定时任务 ?

    在 SpringBoot 中使用定时任务主要有两种不同的方式,一个就是使用 Spring 中的 @Scheduled 注解,另一-个则是使用第三方框架 Quartz。

    使用 Spring 中的 @Scheduled 注解来实现。

    8、Async异步调用方法

    在SpringBoot中使用异步调用是很简单的,只需要在方法上使用@Async注解即可实现方法的异步调用。 注意:需要在启动类加入@EnableAsync使异步调用@Async注解生效。

    9、SpringBoot 如何设置支持跨域请求?

    在需要跨域的controller加上
    @CrossOrigin(origins = "http://localhost:4000")

    相关文章

      网友评论

          本文标题:springboot

          本文链接:https://www.haomeiwen.com/subject/pzrrmrtx.html