SpringBoot异常处理机制之自定义404、500错误提示页面 - 518篇
SpringBoot 中多例模式的神秘世界:用法区别以及应用场景,最后的灵魂拷问会吗?- 第519篇
SpringBoot开发的AI导航站技术架构剖析 —— 技术如何选型 - 第520篇
SpringBoot多例模式,在同一个类中注入两次是否是同一个对象 – 一不小心就会写出一个重大BUG!!- 521篇
SpringBoot基本原理,轻松应对面试官 - 第522篇
导读
这一节继续分享Spring Boot的一些小技巧,这些小技巧掌握在手, 有助于你解决工作中一些特殊的需求或者对项目进行优化 。
技巧一:启动不设置端口
对一些定时任务服务项目,其本身只是提供一个定时调度功能,不需要其他服务调用,只是去调度其他服务。像这样的服务,正常也就不需要设置端口了。这时候SpringBoot也是支持的,实现方式有两种代码方式和配置文件方式,这里说一下配置文件方式:
早期的配置:
spring.main.web-environment=false
新版本的配置(测试版本是3.1.7):
spring.main.web-application-type=none
最后效果,是不是没有看见端口了:
还记得有端口的启动是怎么输出的吗?如下:
技巧二:通用获取HttpServletRequest
在项目common或无法直接请求的地方,想获取request,是无法通过HttpRequestServelet来直接.getRequest,那么在这种情况下,想要获取request对象就需要用到下边的小技巧。
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
技巧三:如何在spring boot上下文中不通过注解获取到上下文中的bean
不通过外部工具类Hutool,如何在spring boot上下文中不通过注解获取到上下文中的bean。
BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
SysUserService sysUserService = factory.getBean(SysUserService.class);
技巧四:在注解内写入自己的销毁方法
在一些特定的场景需要在不使用Bean的时候,进行相应的销毁,这种情况可以采用@Bean注解去修饰自己的Bean,然后在注解内写入自己的销毁方法即可,destroyMethod后填的方法,必须是需要实例化类的方法。
在实体化类SysUser中定义销毁方法:
public void destroy() {
System.out.println("执行销毁方法");
}
使用@Bean注入,并且指定销毁方法:
"destroy") (destroyMethod =
public SysUser sysUser() {
return new SysUser();
}
技巧五:启动完成前进行业务逻辑
利用CommandLineRunner或者ApplicationRunner可实现在SpringApplication的run()完成前执行一些业务逻辑。
实现方式:实现CommandLineRunner接口,ApplicationRunner接口,若多个时,可设置@Order来确定执行的顺序。
Spring Boot整合ElasticSearch实战 - 第511篇
Transaction rolled back because it has been marked as - 第512篇
一文讲清楚SpringBoot项目打包jar后运行报错template might not exist - 第514篇
idea springboot woff/woff2/eot/ttf/svg等小图标不显示的问题 - 第515篇
Noisee AI中文站网页版 AI 音乐生成视频全新登场,快来抢先体验——国内第一个登场的中文站来袭 - 516篇
Spring的SmartLifecycle可以没用过,但没听过就不好了!- 第517篇
SpringBoot异常处理机制之自定义404、500错误提示页面 - 518篇
SpringBoot 中多例模式的神秘世界:用法区别以及应用场景,最后的灵魂拷问会吗?- 第519篇
SpringBoot开发的AI导航站技术架构剖析 —— 技术如何选型 - 第520篇
SpringBoot多例模式,在同一个类中注入两次是否是同一个对象 – 一不小心就会写出一个重大BUG!!- 521篇
SpringBoot基本原理,轻松应对面试官 - 第522篇