SpringBoot
文章平均质量分 64
SpringBoot/Spring
济南大飞哥
代码洁癖+努力学好知识的一块块,不求多,但求专精。
展开
-
SpringBoot面试题及答案
总的来说,虽然 Spring Boot 提供了强大的自动扫描和自动配置能力,但在一些情况下,手动导入配置类或组件类可以提供额外的控制和灵活性。被导入的类不在自动扫描的路径下。需要控制配置类的加载顺序。仅在特定条件下加载某些配置或组件。需要明确表达配置类之间的依赖关系。组织代码结构,使之更清晰和模块化。使用@Import注解是 Spring 强大功能的体现,它允许开发者根据实际需求选择最适合的配置管理方式。原创 2024-03-20 13:58:27 · 827 阅读 · 0 评论 -
自定义线程池,实现父线程MDC的自动拷贝
以上两个Wapper,包括这个匿名类线程池,不难看出他们都是代理类,应用了代理模式进行增强。这个匿名类线程池在execute前,把线程用MDCRunnable包装了一个,于是线程就有了自动拷贝MDC的能力,目前这是最简单的一种方式。原创 2024-05-31 23:52:23 · 275 阅读 · 0 评论 -
SpringBoot自动化配置原理
创建配置类定义一个新的配置类,使用注解并包含@Bean方法。添加条件注解根据需要使用各种条件注解来控制配置类的加载。注册自动配置类在文件中注册新的自动配置类。Spring Boot 的自动化配置利用注解及其背后的机制(包括文件和条件注解)实现了在应用启动时自动装配 bean。通过这种方式,开发者可以专注于业务逻辑,而无需手动配置各种基础设施组件。原创 2024-05-26 00:05:29 · 409 阅读 · 0 评论 -
什么是Webhook 和 HTTP Endpoint?
当这个预设的事件被触发时,源系统将会向配置的HTTP Endpoint 发送一个HTTP请求(通常是POST请求),这个请求包含了关于事件的信息,如事件类型、关联数据等。简单说,Webhook 是一种自动化的通知机制,它通过HTTP请求将事件信息从一个应用程序传递给另一个应用程序的HTTP Endpoint;在Webhook的上下文中,HTTP Endpoint 是接收事件通知的服务器URL。然而,在更广泛的Web服务上下文中,HTTP Endpoint 可以是任何通过HTTP协议公开的服务接口。原创 2024-03-22 13:56:25 · 757 阅读 · 0 评论 -
FeignClient是否可以配置多个拦截器?
1、做法1、做法在Spring Cloud中,是一个声明式的Web服务客户端,让调用远程服务就像调用本地方法一样简单。拦截器可以用于在发送请求之前或者获得响应之后执行一些操作,比如添加公共的Header、记录日志、做一些统计等。在Feign中,拦截器是通过实现接口来定义的。如果你想为添加多个拦截器,可以声明多个的Bean。下面是如何定义和注册多个拦截器的步骤:1、创建多个实现了3、然后,你可以在接口上使用注解的当Feign准备发起请求时,所有注册的。原创 2024-03-22 16:23:28 · 679 阅读 · 0 评论 -
SpringBoot整合MyBatis步骤
在Spring Boot中整合MyBatis可以通过几种方式实现,主要包括使用官方的MyBatis Spring Boot Starter,或者通过手动配置。这是最简单的方式,因为Spring Boot Starter为我们自动配置了大部分的MyBatis设置。原创 2024-05-09 19:57:54 · 298 阅读 · 0 评论 -
SpringBoot如何实现动态数据源?
接下来,你需要实现,以便根据当前上下文确定应使用哪个数据源。@Override。原创 2024-05-09 18:55:06 · 549 阅读 · 1 评论 -
SpringBoot启动过程
由于它们运行的时间点较早,容器可能还没有完全初始化,许多Bean可能还未被创建和注册,因此在这些组件中使用@Autowired注入其他的Bean通常是不可行的或者说行为是不确定的。这个列表提供了Spring Boot启动过程的一个相当详尽的视角,但是实际上在实际的应用中,基于不同的配置和自定义的组件,还可能涉及更多的步骤和细节。,它直接操作ApplicationContext的配置,这发生在容器的Bean定义被加载之前,因此此时容器里面还没有Bean可以被注入。原创 2024-03-30 10:50:20 · 1041 阅读 · 0 评论 -
SpringBoot多模块应用的模块设计
启动模块,所有的Congfig类也建议放在这里。为什么是所有的Config都放在这里,我认为放在这里使得配置类更加的集中,更加的好管理,也能更好的梳理配置,虽然有些配置也可以跟着自己的模块走,但是我还是觉得放在这里好些。有更多体会的建议留言。原创 2024-03-22 19:44:56 · 181 阅读 · 0 评论 -
在Spring Boot中如何处理跨域请求(CORS)?
当浏览器执行跨源 HTTP 请求时,根据请求的类型,它可能首先发起一个预请求(preflight request),这是一种使用 OPTIONS 方法的 HTTP 请求,用来检查真实请求是否安全。不过,值得注意的是,确保 Nginx 的 CORS 设置与你的应用安全策略保持一致是非常重要的。如果你的 Web 应用中包含从其他源获取资源的需求(例如,前端应用从不同域名的 API 服务器请求数据),同源策略将默认阻止这种跨源 HTTP 请求。的跨域请求,并且允许特定的 HTTP 方法。原创 2024-03-20 15:29:34 · 1028 阅读 · 0 评论 -
过滤器 拦截器 Aop的区别
在 Spring 框架中,过滤器(Filter)、拦截器(Interceptor)和切面(AOP)都是用于在应用程序的不同层次上进行横切关注点(cross-cutting concerns)处理的技术。对于登录拦截这样的场景,拦截器通常是更好的选择,因为它提供了与 Spring MVC 紧密集成的方式,允许你在控制器方法处理之前执行逻辑,并根据需要控制是否继续处理请求或重定向到登录页面。将会拦截所有路径的请求,但排除了登录页面和静态资源的路径。这样的设置使得拦截器成为实现登录拦截的理想选择。原创 2024-03-20 15:02:47 · 955 阅读 · 0 评论 -
Spring Boot 外部化配置优先级
Apollo(阿波罗)是一个由携程框架部门开源的配置中心服务,旨在为分布式系统提供集中式的配置管理服务。在Spring Boot应用中集成Apollo后,Apollo中的配置属性将会和Spring Boot的本地配置文件(比如。以上列表是按照配置源的优先级排序的。如果你在多个位置定义了相同的属性,那么按照这个列表顺序,优先级越高的配置源将覆盖优先级较低的同名属性。属性来激活特定的配置文件和指定配置文件的位置,进一步提供灵活的配置管理。Spring Boot 允许你通过设置。)等共同作用于应用配置。原创 2024-03-20 10:49:01 · 449 阅读 · 0 评论 -
Springboot常用的设置
# 端口server.port = 8080# 应用名spring.application.name = cloud-three-code# 启用编码spring.http.encoding.enabled = true# 缺省编码(这里只是在客户端没设置编码时起效,如果要强制编码,请配置force)spring.http.encoding.charset = UTF-8# 时区(也可以使用fastjson,就不用配置时区了。不配置时区,接收时间参数时会少8个小时。)spring.jac.原创 2020-07-17 17:32:55 · 477 阅读 · 0 评论 -
SpringBoot定时任务@EnableScheduling
一、定时任务作用?定时任务相当于闹钟在什么时间做什么事情(执行什么命令/脚本)二、举例说明1、pom.xml中导入必要的依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte...原创 2020-04-12 10:13:21 · 939 阅读 · 1 评论 -
SpringBoot打印POST请求原始入参body体
springboot如何打印post请求的body请求体原创 2020-03-18 18:26:24 · 5609 阅读 · 0 评论 -
Springboot下JackJson的日期格式化问题
时区默认为伦敦时区,国区需要设置为东8区,为了避免每次都加注解。1、在MvcConfigurer的extendMessageConverters方法里设置。(可能只对http发起的请求有效。)2、可以搞个@bean,返回ObjectMapper。 @Override public void extendMessageConverters(List<HttpM...原创 2020-03-15 18:06:00 · 1789 阅读 · 0 评论 -
apollo配置中心与yml中同时存在相同配置时,以谁为准?
https://github.com/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E8%AE%BE%E8%AE%A1apollo使用的spring的@Value注解为字段注入值,那么apollo与yml同时存在相同配置时,以谁为准?其实apollo的官网有此解释,在 3.1 和Spring集成的原理,结论是优...原创 2019-04-22 14:40:41 · 13905 阅读 · 6 评论 -
SpringBoot整合Mybatis出现错误Invalid bound statement (not found)的解决办法
就是Mybatis的配置,如果你使用的yml格式的千万注意,缩进对于yml来说至关重要。mybatis是在文档的顶级配置下,不要放在spring下,否则也是报错。原创 2019-02-27 18:22:44 · 26327 阅读 · 2 评论 -
SpringBoot+Mybatis多数据源解决方案
确保为每个数据源的Mapper创建正确的XML映射文件。例如,在`src/main/resources/mapper/primary`目录下和`src/main/resources/mapper/secondary`目录下放置相应的Mapper XML文件。原创 2018-12-04 16:56:32 · 200 阅读 · 0 评论