Java面试题-springboot

目录

什么是springboot 

Spring Boot有哪些优点? 

什么是 JavaConfig?

如何重新加载Spring Boot上的更改,而无需重新启动服务器? 

springboot 常用注解

Spring Boot中的监视器是什么? 

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

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

什么是YAML? 

如何集成Spring Boot和ActiveMQ? 

springboot常用的starter有哪些 ?

springboot自动配置的原理 ?

springboot读取配置文件的方式 ?

springboot集成mybatis的过程 ?

SpringBoot项目如何进行打包部署?

什么是springboot 

用来简化spring应用的初始搭建以及开发过程,使用特定的方式来进行配置(properties或yml文件) 

创建独立的spring引用程序 ,main方法运行 

嵌入Tomcat 无需部署war文件 

简化maven配置 

自动配置spring添加对应功能starter自动化配置 

答:总而言之,spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用

Spring Boot有哪些优点? 

答:

-快速创建独立运行的spring项目与主流框架集成 

-使用嵌入式的servlet容器,应用无需打包成war包 

-starters自动依赖与版本控制 

-大量的自动配置,简化开发,也可修改默认值 

-准生产环境的运行应用监控 

-与云计算的天然集成

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

减少开发,测试时间和努力。
使用 JavaConfig 有助于避免使用 XML。
避免大量的 Maven 导入和各种版本冲突。
提供意见发展方法。
通过提供默认值快速开始开发。
没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东
西。
需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加
用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将
@Autowired 添加到 bean 方法中,以使 Spring 自动装入需要的依赖关系中。
基于环境的配置 使用这些属性,您可以将您正在使用的环境传递到应用程序:-
Dspring.profiles.active = {enviornment}。在加载主应用程序属性文件后,Spring 将在
(application{environment} .properties)中加载后续的应用程序属性文件。

什么是 JavaConfig?

Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法。因此
它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:
面向对象的配置。由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 Java 中的
面向对象功能。一个配置类可以继承另一个,重写它的@Bean 方法等。
减少或消除 XML 配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在 XML 和 Java 之间来回切换。JavaConfig 为开发人员提供了一种纯 Java 方法来配
置与 XML 配置概念相似的 Spring 容器。从技术角度来讲,只使用 JavaConfig 配置类来配置
容器是可行的,但实际上很多人认为将 JavaConfig 与 XML 混合匹配是理想的。
类型安全和重构友好。JavaConfig 提供了一种类型安全的方法来配置 Spring 容器。由于
Java 5.0 对泛型的支持,现在可以按类型而不是按名称检索 bean,不需要任何强制转换或
基于字符串的查找

如何重新加载Spring Boot上的更改,而无需重新启动服务器? 

这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。 

Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。 

开发人员可以重新加载Spring Boot上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring Boot在发布它的第一个版本时没有这个功能。 

这是开发人员最需要的功能。DevTools模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供H2数据库控制台以更好地测试应用程序。 

org.springframework.boot 

spring-boot-devtools 

true

springboot 常用注解

第一层注解@RestController相当于@Controller +@ResponseBody。

@Controller

@RequestMapping("/api/status")

public class HealthController {

第三层注解:@ResponseBody和@RequestBody

@Autowired

private DataSource dataSource;

@Value("${druid.url}")

private String url;

@Service("sysGeneratorService")

public class SysGeneratorServiceImpl implements SysGeneratorService {

@Mapper

public interface SysGeneratorDao {

Spring Boot中的监视器是什么? 

Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。 

有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。

监视器模块公开了一组可直接作为HTTP URL访问的REST端点来检查状态。

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

默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访
问它们。安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的。 我们可以使用
management.security.enabled = false
来禁用安全性。只有在执行机构端点在防火墙后访问时,才建议禁用安全性。

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

为了在自定义端口上运行 Spring Boot 应用程序,您可以在 application.properties 中指定端口。
server.port = 8090

什么是YAML? 

https://www.runoob.com/w3cnote/yaml-intro.html

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

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

 

如何集成Spring Boot和ActiveMQ? 

对于集成Spring Boot和ActiveMQ,我们使用spring-boot-starter-activemq依赖关系。 它只需要很少的配置,并且不需要样板代码。

springboot常用的starter有哪些 ?

spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持 

spring-boot-starter-data-jpa 数据库支持 

spring-boot-starter-data-redis redis数据库支持 

spring-boot-starter-data-solr solr支持 

mybatis-spring-boot-starter 第三方的mybatis集成starter

springboot自动配置的原理 ?

在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration 

会自动去maven中读取每个starter中的spring.factories文件 该文件里配置了所有需要被创建spring容器中的bean

springboot读取配置文件的方式 ?

springboot默认读取配置文件为application.properties或者是application.yml

springboot集成mybatis的过程 ?

添加mybatis的starter maven依赖 

org.mybatis.spring.boot 

mybatis-spring-boot-starter 

在mybatis的接口中 添加@Mapper注解 

在application.yml配置数据源信息

SpringBoot项目如何进行打包部署?

springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适。

首先需要在application.properties当中配置端口

server.port=8080 # http://localhost:8088/swagger-ui.html

marven的配置文件

java -jar test.jar >temp.txt //这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕白Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值