springboot面试
一户董
专注后端技术分享!!!
展开
-
springboot面试之支持哪些日志框架
logbacklog4jlog4j2java util logging其中默认的是logback。关于java日志的简单发展历史分析,可以参考这篇文章 ,关于springboot中对于日志的封装处理过程可以参考这篇文章 。原创 2021-11-08 14:05:42 · 355 阅读 · 0 评论 -
springboot面试之集成springsecurity
首先引入springsecurity的起步依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>然后实现抽象类org.springframework.security.config.annotation.web.con原创 2021-11-08 13:28:40 · 156 阅读 · 0 评论 -
springboot中使用springsecurity
1:概述1.1:认证和授权的区别认证就是证明你是谁,而授权是你能做什么,比如你要连接mysql数据库,此时需要用户名和密码,这个过程就是认证,而登陆之后你可以做什么操作,比如创建表,删除表,查询数据,等,这就是授权。其实这个过程对于所有的系统的都是通用的,你登录系统需要录入认证信息来登录,这就是认证,登录之后你能看到什么,干什么,这就是授权。在系统中,认证对应的应该就是登录功能,而授权对应的就是权限控制功能。本文我们要分析的springsecurity就可以提供二者的功能。2:实例程序2.1:引入原创 2021-11-07 15:03:44 · 1226 阅读 · 1 评论 -
springboot面试之如何更改内嵌web容器为jetty
springboot默认的内嵌web容器是Tomcat,如增加了如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>在会自动导入tomcat相关的起步依赖,如下:如果是想要替换为jetty的话,只需要通过exclude原创 2021-11-03 14:52:26 · 394 阅读 · 0 评论 -
springboot面试之如何在启动时执行自定义逻辑
实现CommandLineRunner接口,并使其成为spring bean,则在启动过程中会加载所有该接口子类的spring bean,并调用其run方法,该接口在spring-boot模块定义,源码如下:// org.springframework.boot.CommandLineRunner@FunctionalInterfacepublic interface CommandLineRunner { void run(String... args) throws Exception;}原创 2021-11-02 18:59:34 · 163 阅读 · 0 评论 -
springboot面试之有哪几种读取配置的方式
1:@Value注解该注解是spring-beans模块定义的注解,源码如下:// org.springframework.beans.factory.annotation.Value@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @inte原创 2021-11-02 18:42:07 · 136 阅读 · 0 评论 -
springboot面试之什么是自动配置
springboot自动配置就是加载java config配置类为spring bean,具体过程如下:扫描每个jar包中的META-INF/spring.factories文件,并以keyorg.springframework.boot.autoconfigure.EnableAutoConfiguration查找配置的java config类,并配合@Condition条件注解和spring的java config类的加载功能,转换为一组spring bean,从而完成自动配置。关于这个过程,可以原创 2021-11-01 18:34:59 · 601 阅读 · 0 评论 -
springboot面试之核心注解有哪些
@SpringBootApplication注解是最核心的注解,使用在main方法所在的类上,代表着是一个springboot的应用程序,该注解源码如下:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(t原创 2021-11-01 18:09:51 · 639 阅读 · 0 评论 -
springboot面试之有哪些配置方式
1:xml配置文件虽然在springboot中主流的配置方式是java config,但是我们依然可以使用普通的xml的配置方式,如下定义一个bean:<beans> <bean id="myBean" class="xxx.yyy.MyBean"/></beans>如果想要使用这种方式需要依赖于@ImportResource注解,具体可以参考这篇文章 。2:注解配置比如@RequestMapping,@Service,@Repository等都是用原创 2021-10-31 18:08:34 · 268 阅读 · 0 评论 -
springboot面试之如何定义多套配置文件
使用profile功能,不同的配置文件使用格式application-{profile}的格式进行命名,然后通过spring.profiles.active=xxx来激活对应的profile,从而使用对应的application-{profile}配置文件。可以在默认配置文件application中设置spring.profiles.active的值,也可以在启动jar包时通过--spring.profiles.active指定,如java -jar xxx.jar --spring.profiles.ac原创 2021-10-31 15:09:14 · 137 阅读 · 0 评论 -
springboot面试之默认配置文件是什么
默认的配置文件名称是application,格式可以是properties,或者yml/yaml ,即,可以是application.properties, application.yaml/yml。bootstrap配置文件是springcloud默认的,不是springboot。springboot中提供的默认配置项可以参考这里 。...原创 2021-10-31 10:23:35 · 426 阅读 · 0 评论 -
springboot面试之配置文件有哪几种方式
配置文件目前有两种方式,一种是properties,这种方式是比较传统的方式,目前使用也比较多,另外一种方式是yml/yaml,这是一种结构化的数据序列化语言,注意是一种语言,因此值是有数据类型的,比如80就是整数80,如果是想要定义字符串80则需要定义为"80",同理,false就是布尔值的false,如果是想要定义字符串false,则需要定义为"false",另外spring中的@PropertySource注解 读取配置文件只支持properties配置文件,而yml/yaml格式的文件更加格式化,更原创 2021-10-30 19:23:07 · 897 阅读 · 0 评论 -
springboot面试之实现热部署方式
1:spring-boot-devtools2:JRebel3:IDEA中设置更新class打开Edit Configuration:设置变化时更新成功后成功后在运行窗口可以看到如下图标,即为成功:有修改后可以手动点击该按钮,当然也会自动更新。...原创 2021-10-30 17:54:33 · 118 阅读 · 0 评论 -
springboot面试之修改默认端口号有哪几种方式
1:在application.properties文件中配置在application.properties配置文件中设置server.port=9999。2:启动jar时设置java -jar xxx.jar --server.port=9999。原创 2021-10-30 15:13:49 · 150 阅读 · 0 评论 -
springboot面试之运行springboot的几种方式
1:fat jar如果是我们在pom中添加了spring-boot-maven-plugin,可能如下:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId>原创 2021-10-29 11:46:06 · 669 阅读 · 0 评论 -
springboot面试之如何统一版本
1:使用springboot-parent在pom中定义如下代码:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.10.RELEASE</version> </parent>但是这种方式有个问题原创 2021-10-28 21:02:08 · 760 阅读 · 0 评论 -
springboot面试之常用的starter有哪些
1:官方starterspringMVC+内嵌web容器:spring-boot-starter-webSpring JPA + Hibernate:spring-boot-starter-data-jpaldap:spring-boot-starter-ldap2:非官方startermybatis:mybatis-spring-boot-starternetty:netty-websocket-spring-boot-starterdubbo:dubbo-spring-boot-start原创 2021-10-28 14:17:18 · 1181 阅读 · 0 评论 -
springboot面试之starter是什么
一个项目最重要的组成部分除了源码之外,应该就是依赖了,比如我们要使用spring mvc的功能就需要引入如下的依赖:那么对于普通spring环境下我们就需要在pom文件中添加对应的GAV依赖信息,从而引入相关的依赖,可能如下:<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>原创 2021-10-28 13:51:04 · 278 阅读 · 0 评论 -
springboot面试之spring,springboot,springmvc的区别
这里的spring指的是spring framework。当我们打开spring的官网 并查看其项目列表 时,可以看到spring有很多的项目,如下图:其中就有Spring Boot,Spring Framework,但是并没有看到Spring MVC,这是因为springmvc只是springframework项目中一个子模块,如下图:再有因为spring的使用需要进行大量繁琐的配置,为了解决这个问题,开发了springboot项目,以约定优于配置的方式实现了自动配置,简化了用户的开发复杂度.原创 2021-10-28 10:42:06 · 348 阅读 · 0 评论 -
springboot面试之提供了哪些核心功能
1:jar包方式运行通过spring-boot-maven-plugin插件可以将springboot项目打包成一个可以直接运行的jar包,运行方式和常规jar包一样java -jar xxx.jar,启动后可以直接运行内嵌的web容器,根据具体引入的依赖来确定到底该启动哪种web容器。关于jar包运行的原理和过程可以参考 这篇文章 。2:starter使用starter来封装依赖,简化项目引入相关依赖的复杂度,比如在项目中引入如下的依赖:<dependency> <原创 2021-10-27 09:16:09 · 168 阅读 · 0 评论 -
springboot面试之系列文章
springboot面试之springboot是什么原创 2021-10-26 16:29:07 · 199 阅读 · 0 评论 -
springboot面试之springboot是什么
spring有很多的项目,像我们最熟悉的 spring framework ,就是其一个项目,springboot是与spring framework平级的一个项目,从 这里 我们可以看到spring的所有的项目,如下图红框中就是springboot的项目:springboot中的boot就是引导的意思,所以该项目的目的就是引导我们来使用spring,springboot通过约定优于配置的方式为了提供了starter,在starter就可以自动给出对应框架的默认的配置,让我们可以快速的开始使用框架。如s原创 2021-10-26 16:28:02 · 353 阅读 · 0 评论