![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Boot
穿条秋裤到处跑
Wu,Rosen Wanlong
展开
-
Service方法增加@Asyn注解后导致bean无法找到 NoSuchBeanDefinitionException
EnableAsync注解的proxyTargetClass的默认属性为false,默认使用JDK代理,在有些场景下依赖注入就会有NoSuchBeanDefinitionException的问题。首先确认的是Service添加了@Service或@Component等注解,另外也增加了@ComponentScan确定扫描的包路径是包含对应Service的,但就是无法找到这个bean。在不开启Async的情况下,现在版本的Springboot都是默认使用的是Cglib代理,bean的注入这些都没问题。原创 2024-06-21 22:59:46 · 312 阅读 · 0 评论 -
前端同时访问后端同一接口两次,但只有后面那次请求有返回数据
两次接口都是成功了的,但是第一次请求的返回值没有数据,状态为200.最开始我都认为是前端调用的问题,两次请求之间加上延时还是不行。我自己写了个脚本测试也是如此,通过反复测试,发现如果当第一次请求没有执行完之前,发起第二次请求,那么第一次请求就绝对没有数据,但也是请求成功的。这个接口稍微有点特殊,普通的接口直接返回一个DTO给前端,由于这个接口的数据格式比较灵活,所以直接处理成Gson,通过response对象写入。public class BaseController { protecte.原创 2021-07-12 17:24:02 · 5005 阅读 · 0 评论 -
springboot如何使用多线程,线程池管理
在原生java中,创建和启动线程的方式大致有以下几种:继承Thread类,然后重写run方法实现Runnable接口,并重写run方法匿名内部类 Thread thread = new Thread(new Runnable() { @Override public void run() { // 线程实现 } }); thread.start();lambda表达式 new Thread(()->{ // 线程实原创 2021-06-08 17:01:56 · 4431 阅读 · 0 评论 -
swagger里面显示的示例参数格式错误
swagger的配置和用法,在此就不做过多赘述了,在使用过程中,可能有的朋友会遇到这样的情况,这个接口显示的示例参数,却是另一个接口的参数格式,这个对后端自测的角度来说,非常不友好。但只要把参数手动改成正确的格式,后端接口还是能正确接收的。我们习惯使用DTO作为接口的入参,一个DTO对象往往需要标注@ApiModel注解,我们从原备注信息能够获得该注解的详情。能够针对我们的接口入参对象提供额外的信息,也就是能够根据后端入参的数据接口,显示一个可测试的数据对象,一个json格式的对象。而出现这个接口.原创 2021-05-22 10:36:13 · 1389 阅读 · 0 评论 -
前端成功调用后端接口,返回值却报404
这种情况,多半是在Controller前端控制器上标注的是@Controller,而不是RestController,只需要调整为后者即可。原创 2021-05-20 16:28:28 · 4278 阅读 · 7 评论 -
springboot通过各种不同类型参数获取容器中的bean工具类
一般依赖通过@Autowired,@Resource注入就可以了,也可以通过将属性设置为private final类型,再使用lombok的@AllArgsConstructor也可以注入。使用这个工具类,主要是在处理spring事务的时候,拿到某个对象的代理类,以更加精准的控制事务。@Componentpublic class SpringContextHelper implements ApplicationContextAware { private static ApplicationC原创 2021-05-11 16:12:35 · 724 阅读 · 0 评论 -
为热门项目 若依(ruoyi) 添加请求日志输出
效果大概如下:把每个请求的请求信息以及返回值信息输出控制台或者是日志文件中,在开发或者是测试环境中,方便定位错误。首先,在ruoyi-admin 这个module的application.yml配置文件中添加下面的内容,方便控制输出哪些内容。aspect: logger: spring-application-name: true request-url: true request-uri: true class-method: true request-m原创 2021-03-19 15:43:46 · 7409 阅读 · 3 评论 -
为热门项目 若依(ruoyi) 添加flyway,自动管理数据库版本
flyway大家应该都听说过甚至用过,是一种数据库管理工具。多个人协作开发,或者是项目部署的时候,非常方便,不需要再mysql里面去初始化表结构和数据,项目启动时,根据flyway_schema_history表中的历史数据,动态的更新数据库。若依则是一个非常优秀的开源系统,支持代码自动生成,同时发布了三个版本可供选择。部分框架其实有待更新,后续空闲了会继续将其依赖升级的更新的版本,有兴趣的朋友可以关注。今天主要是为前后端分离项目继承flyway,实现数据库自动管理,项目迁移部署啥的也更加方便。添.原创 2021-03-18 13:17:44 · 1752 阅读 · 5 评论 -
springBoot整合rabbitmq并测试五种常用模型
之前我们记录了原生java代码使用rabbitmq的方法,很简单,类似于原生jdbc代码一样,将连接对象抽离出来作为工具类,生产者和消费者通过工具类获取连接对象,进而获取通道对象,再注册交换机或者是队列等,发送消息与接收消息。在企业开发中,我们更多的是使用spring框架来整合其它技术,springboot更是方便的提供了各种starter来快速添加依赖,完成整合,开箱即用。添加依赖<dependency> <groupId>org.springframework.原创 2021-01-21 14:34:01 · 539 阅读 · 0 评论 -
springboot中如何创建定时任务,以及corn表达式规则
首先,需要在主启动类上添加@EnableScheduling注解,开启定时任务相关配置。@SpringBootApplication@EnableSchedulingpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}然后就是创建定时任务类,注意添加@Component,将对象添加进容器中,并在相关的方法原创 2020-10-27 15:30:59 · 493 阅读 · 0 评论 -
SpringBootTest测试类报错:Suppressed: java.lang.IllegalStateException: Unable to find a @SpringBootCon
在一个特别简单的mybatisPlus测试类中,单元测试时,报错Suppressed: java.lang.IllegalStateException: Unable to find a @SpringBootCon,另外,在测试类中的mapper自动注入会提示失败。网上的说法很多,可能出现这个报错的原因很多吧,我的情况是测试类与springboot主启动类的目录不一致。可以看到,我的主启动类在com.wuwl目录下,而最开始,我的主测试类放到了根目录下。将主测试类放置到com.wuwl目录下,可以原创 2020-08-08 19:09:37 · 1296 阅读 · 0 评论 -
springBoot 2.2.6 项目中html页面样式效果丢失
你我肯定都知道出现这个现象的原因是因为静态资源的请求被拦截了。springBoot 1.x和2.x关于静态资源过滤的配置有些差异,下面是基于2.2.6进行配置。关于html中静态资源的引入<link href="css/bootstrap.min.css" rel="stylesheet"><link href="../static/css/bootstrap.min...原创 2020-05-07 18:16:12 · 1443 阅读 · 0 评论 -
springBoot国际化多语言开发配置,中文OR英文支持一键切换
springBoot有许多的自动化配置,其中就包括多语言的autoConfiguration,打开org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration可查看相关的配置。关于多语言的配置文件,系统默认为项目根路径下的message.properties,当然,这个配置可以在yaml中修改,比如下...原创 2020-04-30 17:36:19 · 6397 阅读 · 2 评论 -
springBoot项目首页居然还有这么多种玩儿法,index.html并不是必须的
首先,在默认的springMVC自动配置下,会加载静态资源文件夹下的index.html文件作为项目首页。springBoot默认的静态资源路径有五个,分别是项目的根路径/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,优先级同显示顺序。如图,项目启动后,会将...原创 2020-04-28 23:46:08 · 2865 阅读 · 0 评论 -
springboot中关于springMvc默认配置,配置扩展,全面接管
1. apringMvc自动配置springBoot整合springMVC时,提供了大量的自动化配置,相关的配置可查看org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration配置类。在静态内部类org.springframework.boot.autoconfigure.web.servlet.WebM...原创 2020-04-28 17:35:56 · 511 阅读 · 0 评论 -
thymeleaf表达式优先级及表达式简单说明
thymeleaf表达式优先级:表达式简单说明:th:insert 片段包含th:replace 片段替换th:each 遍历th:if 条件判断th:unlessth:switchth:caseth:object 声明变量th:withth:attr 属性修改th:attrprependth:attrappendth:value 修改制定属性默认值th:hreft...原创 2020-04-28 15:25:31 · 326 阅读 · 0 评论 -
springboot中添加静态资源的方式,默认的静态资源文件夹有哪些
通过webjar的方式引入静态资源访问popular webjar网站,里面有大量的最常用的静态资源webjar,以jar包的形式导入静态资源。类如jquery、vue、bootstrap等,都可以找到各种版本的依赖。以jquery3.5.0为例:在pom文件引入一下依赖:<dependency> <groupId>org.webjars</gro...原创 2020-04-28 10:49:13 · 4232 阅读 · 0 评论 -
springBoot项目启动后无法访问index.html首页或其它controller
springBoot项目上手和启动比较简单,但也还是会遇到不少细节问题。无法访问被@RestController标注的控制器对应的@RequestMapping映射地址首先重点考虑访问地址是否准确,如果类和方法都添加了@RequestMapping注解,url则需要将二则拼接;可能是包扫描的问题。如果是@SpringBootApplication以内的包对应的控制器,spring...原创 2020-04-26 16:45:53 · 14189 阅读 · 9 评论 -
Whitelabel Error Page : spring boot项目启动后,无法访问@RequestMapping标注的请求
springboot项目创建后,会自动生成一个标注有@SpringBootApplication注解的类,直接执行该类的main方法即可启动web项目,毕竟springboot已经内置了tomcat容器。第一个HelloWorld程序似乎并不容易。手动新建一个类,标注@RestController注解到类的头上,然后在方法头上标注@RequestMapping(value = “/hell...原创 2020-04-22 14:42:10 · 1048 阅读 · 1 评论 -
@Controller @ResponseBody @RestController的基本含义与使用方法
@Controller单据使用@Controller不加@ResponseBody,用于返回一个视图,该情况属于比较传统的Spring MVC应用,前后端不分离的场景。Spring回去resources/templates目录下查找hello.html,并且携带参数@Controllerpublic class HelloController { @GetMapping("/h...原创 2019-12-11 21:20:41 · 664 阅读 · 0 评论 -
springBoot笔记(一) @SpringBootApplication的神奇魔力
通过IDEA快速创建一个springBoot项目后,Group根路径下会有一个带有@SpringBootApplication注解的启动类,示例如下:package com.wuwl;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBoo...原创 2019-09-19 21:06:59 · 191 阅读 · 0 评论