Java——SpringBoot系列【1】

本篇就围绕Java中的Spring框架做一些讲解吧【大部分都是SpringBoot的】

1、什么是 Spring Boot?

多年来,随着新功能的增加,spring 变得越来越复杂。

只需访问 https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。

如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程 序服务器,添加 spring 配置。

因此,开始一个新的 spring 项目需要很多努力,因为我们现 在必须从头开始做所有事情。 Spring Boot 是解决这个问题的方法。

Spring Boot 已经建立在现有 spring 框架之上。

使用 spring 启动,我们避免了之前我们必须做的所有样板代码和配置。因此,Spring Boot 可以 帮助我们以最少的工作量,更加健壮地使用现有的 Spring 功能。

2、Spring Boot 有哪些优点? 

1.独立运行

Spring Boot而且内嵌了各种servlet容器,Tomcat、jetty等,现在不再需要打成war包部署的容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在jar包内

2.简化配置

Spring-boot-starter-web启动器自动依赖其他组件,减少了maven的配置

3.自动配置

如添加一个spring-boot-starter-web启动器就拥有了web的功能,无需其他配置

4.无代码生成和XML配置

Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切是借助于条件注解完成的,这也是Spring4.x的核心功能之一

5.应用监控

Spring Boot提供一系列端点可以监控服务及应用,做健康检测

3、如何在 Spring Boot 中禁用 Actuator 端点安全性? 

默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访 问它们。

安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的。

我们可以使用 management.security.enabled = false 来禁用安全性。

只有在执行机构端点在防火墙后访问时,才建议禁用安全性。

4、 如何在自定义端口上运行 Spring Boot 应用程序?

配置文件中定义端口号:

server.port = 8090

5、什么是 YAML? 

YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。

与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分层配置数据。

6、如何实现 Spring Boot 应用程序的安全性? 

为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖项,并且必须添 加安全配置。它只需要很少的代码。

配置类将必须扩展 WebSecurityConfigurerAdapter 并覆 盖其方法。

7、什么是 WebSockets? 

WebSocket 是一种计算机通信协议,通过单个 TCP 连接提供全双工通信信道。

WebSocket 是双向的 -使用 WebSocket 客户端或服务器可以发起消息发送。

WebSocket 是全双工的 -客户端和服务器通信是相互独立的。

单个 TCP 连接 -初始连接使用 HTTP,然后将此连接升级到基于套接字的连接。然后这个单 一连接用于所有未来的通信 Light -与 http 相比,WebSocket 消息数据交换要轻得多。

8、什么是 AOP? 

切面编程:AOP

在软件开发过程中,跨越应用程序多个点的功能称为交叉问题。这些交叉问题与应用程序 的主要业务逻辑不同。

因此,将这些横切关注与业务逻辑分开是面向方面编程(AOP)的 地方。

9、什么是 Apache Kafka? 

Apache Kafka 是一个分布式发布 - 订阅消息系统。它是一个可扩展的,容错的发布 - 订阅 消息系统,它使我们能够构建分布式应用程序。

这是一个 Apache 顶级项目。

Kafka 适合离 线和在线消息消费。

10、什么是 SpringMvc? 

SpringMvc 是 spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合

11、Spring MVC 的优点?

1、它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java 组件.并且和 Spring 提供的其他基础结构紧密集成.

2、不依赖于 Servlet API(目标虽是如此,但是在实现的时候确实是依赖于 Servlet 的)

3、可以任意使用各种视图技术,而不仅仅局限于 JSP

4、支持各种请求资源的映射策略

5、它应是易于扩展的

12、SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决? 

是单例模式

所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,

解决方案是在控制器里面不能写字段。

13、什么是 MyBatis?

MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。

14、#{}和${}的区别是什么? 

1、#{}是预编译处理,${}是字符串替换。

2、Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法 来赋值;

3、Mybatis 在处理${}时,就是把${}替换成变量的值。

4、使用#{}可以有效的防止 SQL 注入,提高系统安全性。

15、MyBatis 的好处是什么? 

1、MyBatis 把 sql 语句从 Java 源程序中独立出来,放在单独的 XML 文件中编写,给程序的 维护带来了很大便利。

2、MyBatis 封装了底层 JDBC API 的调用细节,并能自动将结果集转换成 Java Bean 对象, 大大简化了 Java 数据库编程的重复工作。

3、因为 MyBatis 需要程序员自己去编写 sql 语句,程序员可以结合数据库自身的特点灵活 控制 sql 语句,因此能够实现比 Hibernate 等全自动 orm 框架更高的查询效率,能够完成复 杂查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值