2020SpringBoot知识点(⾯试题)总结
⽬录
1、什么是Spring Boot?
Spring Boot 是 Spring 开源组织下的⼦项⽬,是 Spring 组件⼀站式解决⽅案,主要是简化了使⽤ Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上⼿。
2、为什么要⽤Spring Boot?(其实这么问,⼈家就是让你说说他的优点)
独⽴运⾏,内嵌tomcat.
简化配置,因为没有 l ⽂件。只需添加⽤@ Configuration 注释的类,然后添加⽤@Bean 注释的⽅法,Spring 将⾃动加载对象并像以前⼀样对其进⾏管理。您甚⾄可以将@Autowired 添加到 bean ⽅法中,以使 Spring ⾃动装⼊需要的依赖关系中。
⾃动配置
⽆代码⽣成和XML配置
应⽤监控
上⼿容易,提升开发效率,为 Spring 开发提供⼀个更快、更⼴泛的⼊门体验。
避免⼤量的 Maven 导⼊和各种版本冲突。
3、Spring 和 SpringBoot 以及spring mvc有什么不同?
Spring 框架提供多种特性使得 web 应⽤开发变得更简便,包括依赖注⼊、数据绑定、切⾯编程、数据存取等等。
实际上,Spring 是 unopinionated(予以配置项多,倾向性弱) 的,Spring Boot 在平台和库的做法中更 opinionated ,使得我们更容易上⼿。
Spring MVC 提供了⼀种分离式的⽅法来开发 Web 应⽤。通过运⽤像 DispatcherServelet,MoudlAndView 和 ViewResolver 等⼀些简单的概念,开发 Web 应⽤将会变的⾮常简单。
Spring 和 SpringMVC 的问题在于需要配置⼤量的参数。
Spring Boot 通过⼀个⾃动配置和启动的项来⽬解决这个问题。为了更快的构建产品就绪应⽤程序,Spring Boot 提供了⼀些⾮功能性特征。
4、如何重新加载 Spring Boot 上的更改,⽽⽆需重新启动服务器?
通俗来讲,也就是热部署。在我们spring boot项⽬中添加⼀下热部署的依赖即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
其实还有另外⼀种热部署的⽅法:也就是使⽤Spring Loaded。
5、Spring Boot 的核⼼注解是哪个?它主要由哪⼏个注解组成的?
这个问题是作为spring boot中的⽐较基础的问题了。
启动类上⾯的注解是@SpringBootApplication,它也是 Spring Boot 的核⼼注解 主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置⽂件的功能。
@EnableAutoConfiguration:打开⾃动配置的功能,也可以关闭某个⾃动配置的选项,如关闭数据源⾃动配置功能:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@ComponentScan:Spring组件扫描。
这也是spring boot中最常⽤的组合注解。
6、运⾏ Spring Boot 有哪⼏种⽅式?
打包⽤命令或者放到容器中运⾏(例如:打包:maven clean package,后⾯运⾏jar包即可)
⽤ Maven/ Gradle 插件运⾏
直接执⾏ main ⽅法运⾏ (直接运⾏spring boot的启动类即可,main⽅法)
7、Spring Boot 可以兼容⽼ Spring 项⽬吗,如何做?(常识性问题)‘
可以兼容,使⽤ @ImportResource 注解导⼊⽼ Spring 项⽬配置⽂件。
8、Spring Boot开启的两种⽅式
1. 继承spring-boot-starter-parent项⽬
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
2. 导⼊spring-boot-dependencies项⽬依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
9、Spring Boot 的配置⽂件有哪⼏种格式?它们有什么区别?
.properties 和 .yml,它们的区别主要是书写格式不同。其实我们使⽤IDEA这类常⽤的软件创建Spring Boot项⽬时,基本上都是.properties格式的。
另外,.yml 格式不⽀持 @PropertySource 注解导⼊配置。
10、如何在⾃定义端⼝上运⾏ Spring Boot 应⽤程序?
这块我们直接在我们上边9说到的配置⽂件中写⼊⼀下内容即可:
server.port = 80
我们的Spring Boot项⽬默认的是8080端⼝。
11、Spring Boot 的⽬录结构是怎样的?
如下图所⽰:我们后⾯要写的所有代码以及结构,都要在NewdemoApplication内,不能够在他的外⾯。
12、如何创建Spring Boot项⽬
看我这个资源链接就可以了,⾥⾯介绍的⾮常详细,这个是当时要给学⽣讲课我⾃⼰做的⽤到的课件。
上⾯内链接好像得花积分。。。我放⽹盘上⼀个永久链接,没法下载的化⼤家再私信我。
13、⽐较⼀下 Spring Security 和 Shiro 各⾃的优缺点 ?
由于 Spring Boot 官⽅提供了⼤量的⾮常⽅便的开箱即⽤的 Starter ,包括 Spring Security 的 Starter ,使得在 Spring Boot 中使⽤Spring Security 变得更加容易,甚⾄只需要添加⼀个依赖就可以保护所有的接⼝,所以,如果是 Spring Boot 项⽬,⼀般选择 Spring Security 。
1. Spring Security 是⼀个重量级的安全管理框架;Shiro 则是⼀个轻量级的安全管理框架
2. Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单
文件软件有哪些3. Spring Security 功能强⼤;Shiro 功能简单
14、你如何理解 Spring Boot 配置加载顺序?
在 Spring Boot ⾥⾯,可以使⽤以下⼏种⽅式来加载配置。
1)properties⽂件;
2)YAML⽂件;
3)系统环境变量;
4)命令⾏参数
15、Spring Boot 如何定义多套不同环境配置?
applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
16、Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?
配置变更
JDK 版本升级
第三⽅类库升级
响应式 Spring 编程⽀持
HTTP/2 ⽀持
配置属性绑定
spring框架编写软件下载更多改进与加强
17、在spring boot项⽬中,我们如何连接 MySQL 外部数据库?
1、在l⽂件中添加以下依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、配置 application.properties
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
这样之后重启项⽬即可。
18、Spring Boot 中如何实现定时任务 ?
看我写的代码即可:
@Component
public class Jobs {
@Autowired
private TotalModuleService totalModuleService;
public final static long ONE_Minute =  60 * 1000 * 60 * 24 *15  ;
/
**
*  * 第⼀位,表⽰秒,取值0-59
* * 第⼆位,表⽰分,取值0-59
* * 第三位,表⽰⼩时,取值0-23
* * 第四位,⽇期天/⽇,取值1-31
* * 第五位,⽇期⽉份,取值1-12
* * 第六位,星期,取值1-7,星期⼀,星期⼆...,注:不是第1周,第⼆周的意思
*          另外:1表⽰星期天,2表⽰星期⼀。
* * 第7为,年份,可以留空,取值1970-2099mysql面试题导图
* 破解码:$2a$10$8fnlmzf3SJHkr5B97ny1DesTiWL2AzdqvJQw5eKHdDpX1O997qPG2    */
@Scheduled(cron="0 0 0 25 3 ? ")
public void cronJob(){
job();
}
19、什么是 Spring Data ?
Spring Data 是 Spring 的⼀个⼦项⽬。⽤于简化数据库访问,⽀持NoSQL 和 关系数据存储。其主要⽬标是使数据库的访问变得⽅便快捷。Spring Data 具有如下特点:
SpringData 项⽬⽀持 NoSQL 存储:
MongoDB (⽂档数据库)
Neo4j(图形数据库)
Redis(键/值存储)
Hbase(列族数据库)
SpringData 项⽬所⽀持的关系数据存储技术:
easeljs动画JDBC
JPA
Spring Data Jpa 致⼒于减少数据访问层 (DAO) 的开发量. 开发者唯⼀要做的,就是声明持久层的接⼝,其他都交给 Spring Data JPA 来帮你完成。Spring Data JPA 通过规范⽅法的名字,根据符合规范的名字来确定⽅法需要实现什么样的逻辑。
JPA有关的信息,后⾯我会专门写⼀篇⽂章来介绍。我前⾯也是写过相对应的博客的。
20、Spring Boot 中的监视器是什么?
’Spring boot actuator 是 spring 启动框架中的重要功能之⼀。Spring boot 监视器可帮助您访问⽣产环境中正在运⾏的应⽤程序的当前状态。有⼏个指标必须在⽣产环境中进⾏检查和监控。即使⼀些外部应⽤程序可能正在使⽤这些服务来向相关⼈员触发警报消息。监视器模块公开了⼀组可直接作为 HTTP URL 访问的REST 端点来检查状态。
21、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 功能
width的形容词形式
spring-boot-starter-security - 使⽤ SpringSecurity 进⾏⾝份验证和授权
spring-boot-starter-data-jpa - 带有 Hibeernate 的 Spring Data JPA
spring-boot-starter-data-rest - 使⽤ Spring Data REST 公布简单的 REST 服务
还有很多,可以去创建项⽬的时候去看看。
22、保护 Spring Boot 应⽤有哪些⽅法?
在⽣产中使⽤HTTPS
使⽤Snyk检查你的依赖关系
升级到最新版本
启⽤CSRF保护
plsql连接oracle配置12557使⽤内容安全策略防⽌XSS攻击
23、spring boot 项⽬如何实现跨域访问
直接上代码:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。