下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

软件设计:SPRINGBOOT

作者:Lena666     来源: https://www.cnblogs.com/Lena666/p/11757894.html点击数:2173发布时间: 2020-04-12 09:01:45

标签: 数据库javaspring

  java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

  一、是什么?

  springboot是spring开源下的可用java构架微服务的微框架,是spring组件一键式解决方案,主要是简化了spring的使用难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

  二、为什么使用?

  springboot优点特别多,他能帮我们迅速搭建一个微服务项目框架,使用它项目可独立运行、配置简单、应用监控、上手容易。

  三、核心配置文件有哪些?它们有什么区别?

  springboot的核心配置文件有application与bootstrap,

  对比application配置文件,bootstrap有以下几个特征:

  bootstrap由applicationContext加载,优先于application加载,

  application里面的属性不能被覆盖

  使用场景:

  application配置文件容易理解,主要用于springboot项目的初始化配置。

  bootstrap配置文件适用于以下场景:

  1.从外部资源加载属性,如使用springcloudconfig配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配制信息。

  2.一些固定的不能被覆盖的属性

  3.一些加密解密的场景

  四、springboot的配置文件有哪几种格式?它们有什么区别?

  .yml与.properties,主要书写格式不同,如下;其次是yml文件不支持@propertySource注解导入配置。

  yml:user:name:Lena

  properties:user.name=Lena

  五、核心注解是哪个?主要由哪些注解组成?

  启动类上面的注解是@SpringBootApplication,它也是SpringBoot的核心注解,主要组合包含了以下3个注解:

  @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。

  @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:

  @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})。

  @ComponentScan:Spring组件扫描。

  六、开启spring特性有哪几种方式?

  1.继承spring-boot-starter-parent项目

  2.导入spring-boot-dependencies项目依赖

  七、需要独立的容器运行吗?

  不需要,内置了tomcat

  八、运行springboot有哪几种方式?

  1.放到容器中运行

  2.使用maven/gradle插件运行

  3.执行main方法运行

  九、springboot自动配置原理?

  借助springFactoriesLoader从classpath中搜寻所有META-INFO/spring.factories配置文件。并将其中对应的配置项通过反射实例化为对应的标注了@Configuration的javaConfig形式的Ioc配置容器类,然后汇总为一个并加载到当前springboot创建并使用的Ioc容器。

  十、springboot目录结构是怎么样的?

  如下图是主流与推荐的目录结构,MyApplication是这个程序的入口类,入口类放在一个项目的顶层包中,而在入口类加上@SpringBootApplication注解来开启SpringBoot的各项能力,如组件配置,自动扫描等。其他类放在包的子目录中。

  十一、你如何理解springboot中的starters?

  starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,他们能快速持续的运行,都是一系列得到支持的管理传递型依赖。有了它,你可以一站式集成spring及其他技术,而不需要到处找实例代码与依赖包,例如要想使用SpringJPA技术访问数据库,只需要加入spring-boot-starter-data-jpa启动器依赖就可使用了。

  十二、如何在springboot启动的时候运行一些特定代码?

  可以实现CommindLineRunner或者ApplicationRunner接口,他们都只提供了run方法,若有多个CommindLineRunner或者ApplicationRunner接口,可使用@Order注解为它们排序。

  十三、Springboot有哪几种读取配置的方式?

  Springboot可以通过@PropertySource,@value,@Enviroment,@ConfigurationProperties来绑定变量。

  如果是.properties或者yaml文件,常通过@value,@configurationProperties,@Enviroment来绑定变量。

  读取指定properties文件:@PropertySource+@Value,@PropertySource+@ConfigurationProperties

  十四、springboot支持哪些日志框架,默认是哪个?

  支持javautillogging,log4j2,logback,如果你使用starters启动器,默认是logback。无论使用哪种日志框架,spring都支持将日志输出到控制台或者文件中。

  配置日志方式有在属性中配置(不够灵活)与自定义配置文件(更灵活)两种。根据不同的日志框架,默认加载的日志配置文件的文件名,放在资源根目录下,日志初始化在ApplicationContext创建之前,所以@PropertySources加载的配置是读取不到的,系统环境变量、SpringEnvironment及application,bootstrap配置文件中的信息可以读取到。

  十五、springboot实现热部署有哪几种方式?

  主要有2种方式,springloaded,springbootdevtool

  在springboot实现热部署是一件容易的事,只需加入devtools配置依赖,若有特殊需求可加入自定义配置热部署,完成后,代码的修改可以自动部署并重新热启动项目。

  十六、你如何理解spring配置加载顺序?

  所有的配置都有默认的加载顺序,但spring允许我们调整这些配制来改变默认的配置行为。即“约定优先于配置”,我们将可对springboot的行为进行干预的配置方式划分为以下几种:

  命令行参数;系统环境变量;位于文件中的配置文件、位于classpath中的配置文件、固话到代码中的配置项。第一个优先级最高,逐个递减,优先级高的配置会覆盖优先级低的。

  十七、springboot如何定义多套环境的配置?

  springboot可以对不同的环境或者指令读取不同的配置文件。例如有开发、测试、生产3个不同的环境,配置方式有以下3种

  在配置文件中指定:

  1.基于properties文件配置

  需要另外建立3个文件,application-dev/test/prod,3个文件中分别配置不同环境的参数。然后在application.properties中指定当前的环境spring.profile.active=test,这时候读取的就是application-test.properties.

  2.基于yml文件配置

  只需建立一个application.yaml文件就可,是推荐的方式,配置项同properties文件。

  3.在java代码中通过@profile指定当前环境

  在服务启动时通过命令指定:

  还可在启动类中写死:SpringApplication.setAdditionalProfiles方法。

  十八、Springboot可以兼容老spring项目吗?

  可以,通过@ImportResource注解导入老项目配置文件

  十九、保护springboot项目有哪些方法?

  在生产中使用https

  使用snyk检查你的依赖关系

  升级到最新版

  Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

赞(13)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程