SpringBoot
文章平均质量分 66
奋斗永不止步
这个作者很懒,什么都没留下…
展开
-
spring循环依赖详解
Bean的生命周期被Spring管理的Bean的生成步骤如下:Spring扫描class得到BeanDefinition;根据得到的BeanDefinition去生成bean;首先根据class推断构造方法;根据推断出来的构造方法,反射,得到一个对象(暂时叫做原始对象);填充原始对象中的属性(依赖注入);如果原始对象中的某个方法被AOP了,那么则需要根据原始对象生成一个代理对象;把最终生成的代理对象放入单例池(源码中叫做singletonObjects)中,下次getBean时就直接从单原创 2022-01-12 13:50:05 · 750 阅读 · 0 评论 -
Spring事务详解
Spring事务执行步骤:判断当前执行的方法是否存在@Transactional注解;如果存在,则利用事务管理器(TransactionMananger)新建一个数据库连接;修改数据库连接的autocommit为false;执行target.test(),执行程序员所写的业务逻辑代码,也就是执行sql;执行完了之后如果没有出现异常,则提交,否则回滚。Spring事务是否会失效的判断标准:某个加了@Transactional注解的方法被调用时,要判断到底是不是直接通过【代理对象】调用的原创 2022-01-11 14:32:01 · 1506 阅读 · 0 评论 -
spring bean创建流程+demo
Spring启动流程:解析启动类,得到扫描路径;遍历扫描路径下的java类文件; 如果类文件存在@Component、@Config等注解,则存入BeanDefinitionMap<String,Class>中,key为beanName。遍历BeanDefinitionMap,通过反射创建Bean;Bean创建流程:spring的一大优点就是扩展性很强,比如,在spring bean 的生命周期中,给我们预留了很多参与bean 的生命周期的方法。大致梳理一下,有以下几种:原创 2022-01-11 14:29:31 · 548 阅读 · 0 评论 -
SLF4J: Class path contains multiple SLF4J bindings
异常信息:SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Foundbinding in[jar:file:/D:/tools/maven/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in[ja原创 2022-01-11 11:35:41 · 345 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: reactor/ipc/netty/http/client/HttpClient
java.lang.NoClassDefFoundError: reactor/ipc/netty/http/client/HttpClient问题:springboot项目启动时报NoClassDefFoundError: reactor/ipc/netty/http/client/HttpClient报错信息:nested exception is org.springframework.beans.BeanInstantiationException: Failed to instant原创 2022-01-04 16:14:10 · 1319 阅读 · 0 评论 -
springboot启动类不能正常启动
springboot启动类不能正常启动1、启动配置加@SpringBootApplication注解@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}2、导入spring-boot-starter-web包 <depen原创 2022-01-04 10:58:37 · 5818 阅读 · 2 评论 -
swagger之API接口版本控制+demo案例
springboot整合swagger配置在之前的文章已经写过了,此篇是基于已整合swagger后的,关于版本控制的配置和demo案例。文章地址:swagger2 注解详解+使用案例版本控制思路:此demo是基于swagger的group进行版本控制,对接口URL无侵入,版本对接口地址无影响。相关操作和注意项:无新增依赖jar包;新增自定义版本注解ApiVersion ;新增版本号定义(常量或枚举值都行);手动实例化Docket对象,并注入到spring容器;相关解释都在代码注释里;原创 2021-12-01 18:23:40 · 1235 阅读 · 0 评论 -
swagger2 注解详解+使用案例
API注解说明:注解使用位置注意事项@Api用于controller类上基于类的整体描述@ApiOperation用于controller类内部的方法上基于方法功能的描述@ApiImplicitParams用于controller类内部的方法上非Model对象的参数描述,包含多个@ApiImplicitParam@ApiImplicitParam用于@ApiImplicitParams内单个参数的描述@ApiModel用于参数为Model对象原创 2021-11-24 13:43:40 · 851 阅读 · 0 评论 -
Swagger:Unable to infer base url. This is common when using dynamic servlet registration or when...
问题描述打开:http://localhost:8080/swagger-ui.html 报如下信息:Unable to infer base url. This is common when using dynamic servletregistration or when the API is behind an API Gateway. The base url isthe root of where all the swagger resources are served. For e.g原创 2021-11-23 13:54:42 · 1786 阅读 · 1 评论 -
Spring+Quartz实现定时任务的配置方法
一、Quartz的特点按作业类的继承方式来分,主要有以下两种:作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式作业类不继承org.springframework.scheduling.quartz.QuartzJobBean类的方式注:个人比较推崇第二种,因为这种方式下的作业类仍然是POJO。 * 按任务调度的触发时机来原创 2016-04-19 15:13:17 · 2002 阅读 · 0 评论 -
springboot集成kafka
springboot集成kafka一、maven pom配置二、application.yml配置三、生产者代码:四、消费者代码:一、maven pom配置引入spring boot kafka依赖<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency>原创 2021-07-22 17:46:37 · 122 阅读 · 0 评论 -
springboot正常启动后访问不到controller层的接口
springboot正常启动后访问不到controller层的接口一、启动类未扫描controller目录二、启动类包路径异常三、controller类未添加注解四、application.yml关闭了web服务一、启动类未扫描controller目录解决办法:启动类添加包扫描路径,如:@SpringBootApplication(scanBasePackages = {“com.xxx.controller”})二、启动类包路径异常解决办法:启动类与controller目录保持在同一层原创 2021-07-05 20:17:44 · 4834 阅读 · 1 评论 -
Spring中的线程池ThreadPoolTaskExecutor
一、初始化1,直接调用[java] view plain copy print?ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor(); //线程池所使用的缓冲队列 poolTaskExecutor.setQueueCapacity(200); //线程池维护线程的最少数量 poolTaskExe转载 2016-06-22 11:03:51 · 506 阅读 · 0 评论