1. 什么是 SpringBoot?
SpringBoot是一个用于开发和部署Spring应用的框架。它通过提供自动化的配置和快速启动的能力,简化了Spring应用的开发流程。
- SpringBoot集成了大量常用的依赖,可以快速构建出一个可运行的、独立的Spring应用
- SpringBoot采用约定优于配置的原则,减少了开发者的配置工作,提高了开发效率。
- SpringBoot还提供了丰富的可扩展性和可插拔的特性,可以根据需要选择添加或移除组件,使得应用更加灵活和可定制。
2. SpringBoot有哪些优缺点?
优点:SpringBoot相对于SSM框架来说,减少了开发者的配置工作,通过使用@SpringBootApplication注解装配应用,可以快速启动项目。此外,SpringBoot还被广泛应用于微服务SpringCloud的开发,显示出了高度的受欢迎程度。
缺点:例如对于一些特殊需求的项目可能会有限制,因为SpringBoot是自动化配置,无法提供灵活的定制。此外,由于SpringBoot集成了大量的依赖,项目可能会变得庞大,导致启动时间长。
3. 什么是 JavaConfig?
JavaConfig是一种配置Spring应用上下文的方式,与传统的XML配置相比,它使用Java类来代替xml文件,通过在类上使用注解来定义组件的配置信息。JavaConfig提供了更加简洁、类型安全和可重构的配置方式,使得配置更加灵活并且易于维护。
4. 前后端分离,如何维护接口文档 ?
在前后端分离项目中,接口文档的维护非常重要。一种常见的做法是使用Swagger框架来生成和维护接口文档。Swagger可以根据代码中的注解自动生成接口文档,并且提供了一个可视化的界面供开发者查看和测试接口。通过在代码中添加注解,开发者可以方便地定义接口的参数、返回值、错误码等信息,使得接口文档的编写和维护更加简单和高效。
5. 什么是 Spring Data?
Spring Data是一个用于简化数据库访问的框架。它提供了一套统一的API,可以与不同类型的数据存储进行交互,包括关系型数据库、非关系型数据库以及其他形式的数据存储。Spring Data的目标是通过提供通用的数据访问方法和自动化的查询生成,减少开发人员对底层数据访问的工作量,提高开发效率。
6. SpringBoot如何实现打包
SpringBoot可以通过将应用打包成一个可执行的jar包来实现部署。这样可以简化部署过程,只需在目标环境中运行jar文件即可启动应用。打包SpringBoot应用可以使用Maven或Gradle等构建工具,将项目打包成一个独立的可执行文件,包含了应用及其所有的依赖。打包后的应用可以轻松地部署到任何支持Java环境的服务器上。
7. Spring Framework与Spring Boot什么关系?
Spring Framework和Spring Boot是两个相关但不同的项目。
Spring Framework是一个开源的Java应用程序框架,提供了一系列的库和工具,用于开发企业级Java应用程序。它提供了控制反转(IoC)和面向切面编程(AOP)等特性,帮助开发者构建可扩展和模块化的应用程序。Spring Framework可以被看作是一个基础设施框架,提供了各种组件和功能,用于处理数据库访问、事务管理、Web开发等任务。
Spring Boot是构建在Spring Framework之上的一个开发框架,旨在简化Spring应用程序的配置和部署。它提供了自动配置、快速开发和无需繁琐的XML配置的特性。Spring Boot通过提供一套默认的配置,简化了项目的搭建和部署过程,同时也减少了开发人员的配置工作量。Spring Boot还集成了其他常用的框架和库,如Spring Data JPA和Spring Cloud等,方便开发者构建微服务架构。
因此,可以说Spring Boot是Spring Framework的扩展和简化版本,旨在提供更便捷的开发体验和更高效的部署方式。它帮助开发者快速搭建和部署Spring应用程序,同时仍然可以享受到Spring Framework提供的强大功能和灵活性。
8. Spring、SpringBoot、SpringMVC的区别?
Spring Boot 本质上是 Spring 的延伸,它是基于 Spring 的,它为快速构建和开发 Spring 提供了有力的支撑;接着介绍了 Spring Boot 的四大特性:更快速的构建能力、起步依赖、内嵌容器支持、Actuator 监控支持等
9. springcloud和springboot的区别
10. 你如何理解 SpringBoot 中的 Starters?工作原理是什么?常用的 Starter 有哪些?能否举一个例子来解释更多 Staters 的内容?springboot自定义starter写过吗,怎么保证有效 ?
在Spring Boot中,Starters是一系列可以集成到应用程序中的依赖包。它们可以简化开发人员的工作,提供了一站式集成Spring及其他技术的方便方式。通过使用Starters,开发人员可以轻松地将所需的功能集成到他们的应用程序中,而不需要手动添加依赖项或编写示例代码。
Starters为常见的功能和技术提供了相关的maven依赖项,可以在pom.xml文件中进行配置并通过maven来管理,例如:
- spring-boot-starter-web : 用于开发Web和RESTful应用程序
- spring-boot-starter-test : 用于单元测试和集成测试
- spring-boot-starter-jdbc : 用于数据库访问
- spring-boot-starter-data-jpa : 用于使用Hibernate的Spring Data JPA
- spring-boot-starter-security : 用于安全性
- spring-boot-starter-data-solr
- ...
因此,引入适合项目需求的Starters,开发人员能够更加高效地构建和部署应用程序, 同时降低了配置和依赖管理的复杂性,提高开发效率。
11.
12. 如何集成 SpringBoot 和 ActiveMQ?
关于集成Spring Boot和ActiveMQ,可以通过引入spring-boot-starter-activemq依赖项来实现。在配置文件中指定ActiveMQ的相关配置,如地址、端口和队列名称等。然后在代码中使用Spring Boot提供的JmsTemplate来进行消息的发送和接收。
13. 什么是YAML?
yaml是一种用于配置文件的标记语言,它具有比传统的属性文件更加简洁和易读的语法。在Spring Boot中,可以使用yaml格式的配置文件来配置应用程序的各种属性和参数。通过yaml的层级结构和简洁的语法,可以更清晰地组织和管理配置信息。
14. SpringBoot 的核心注解是哪个?它主要由哪几个注解组成的?
Spring Boot的核心注解是@SpringBootApplication。它是一个组合注解,包含了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解。@SpringBootConfiguration用于标识该类是Spring Boot的配置类,@EnableAutoConfiguration用于启用自动配置,@ComponentScan用于扫描和加载Spring组件。
15. 保护 SpringBoot 应用有哪些方法?
保护Spring Boot应用程序的方法有多种,其中一种是通过Spring Security来实现身份认证和授权。可以配置Spring Security的相关规则和策略来保护应用程序的资源和接口。另外,还可以通过使用HTTPS协议来加密和保护应用程序的数据传输。此外,还可以使用Spring Boot Actuator提供的监控功能来监控应用程序的运行状态和性能指标。
16. 如何在不使用BasePACKAGE过滤器的情况下排除程序包?
17. 微服务中如何实现 session 共享 ?
18. 如何实现 SpringBoot应用程序的安全性?
19. springboot自动装配注解
SpringBoot通过少量注解和简单配置来实现第三方组件的自动装配。它通过扫描外部引用jar包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到Spring容器,并执行定义的操作。所以在没有Spring Boot的情况下,引入第三方依赖需要手动配置,非常麻烦。但是在Spring Boot中,我们只需要引入对应的starter即可使用所需功能,比如引入spring-boot-starter-data-redis就可以使用redis。
20. 说一下springboot的配置读取顺序
Spring Boot会按照以下顺序加载配置文件:
1. 命令行参数
2. 来自java:comp/env的JNDI属性
3. Java系统属性(System.getProperties())
4. 操作系统环境变量
5. RandomValuePropertySource配置的random.*属性值
6. jar包外部的application-{profile}.properties或application.yml(带spring.profile)
7. jar包内部的application-{profile}.properties或application.yml(带spring.profile)
8. jar包外部的application.properties或application.yml(不带spring.profile)
9. jar包内部的application.properties或application.yml(不带spring.profile)
21. springboot中redis配置文件在哪
默认情况下,Spring Boot会按照以下顺序加载redis的配置:
1. application.properties或application.yml文件中的spring.redis.*属性
2. application-{profile}.properties或application-{profile}.yml文件中的spring.redis.*属性
在这些配置文件中,可以设置redis的连接信息、连接池配置等,根据项目的实际情况进行配置。
22. springboot 项目启动命令
springboot项目启动命令: Spring Boot项目可以使用java -jar命令来运行,需要在命令行中进入项目的根目录,然后执行java -jar xxx.jar,其中xxx.jar是你的Spring Boot项目的可执行jar文件名。
23. Springboot自动装配原理
Spring Boot的自动装配原理是通过@EnableAutoConfiguration注解和spring.factories文件实现的。SpringBoot启动找到自动化配置包下META-INF/spring.factories内的EnableAutoConfiguration配置列表;每个自动配置类按照条件进行生效,默认都会绑定配置文件指定的值;生效的配置类就会给容器中装配很多组件;只要容器中有这些组件,相当于这些功能就有了。总之SpringBoot加载所有META-INF/spring.factories文件下的自动装配类,然后通过条件过滤获取可被装配的配置类,然后配置类被spring加载到IOC容器下。
24. SpringBoot多数据源拆分的思路
SpringBoot多数据源拆分的思路: 实现Spring Boot的多数据源拆分可以通过配置多个数据源和事务管理器,然后在需要使用不同数据源的地方使用不同的数据源和事务管理器。可以使用@Configuration注解和@Bean注解来配置多个数据源和事务管理器,并在需要使用的地方指定对应的数据源和事务管理器。
25. springboot的加载机制有哪些
Spring Boot的加载机制主要包括自动装配和依赖管理两个方面。自动装配通过@EnableAutoConfiguration注解和spring.factories文件实现,可以根据条件自动加载相应的配置类。依赖管理可以通过在pom.xml文件中定义依赖关系来实现,Spring Boot会根据依赖关系自动加载相应的依赖。
26. Springboot的启动参数
Spring Boot的启动参数可以通过application.properties或application.yml文件来配置。可以在这些文件中定义各种属性和参数,然后在启动命令中指定这些文件的位置。例如,可以使用--spring.config.location参数来指定配置文件的位置。另外,还可以使用-D参数来设置JVM的系统属性。