SpringBoot异常处理统一封装我来做-使用篇简介重复功能我来写。在 SpringBoot 项目里都有全局异常处理以及返回包装等,返回前端是带上succ、code、msg、data等字段。单个项目情况下很好解决,当微服务模块多的情况下,很多情况开发都是复制原有代码进行构建另外一个项目的,导致这些功能升级需要修改多个服务,在这个基础上,我们封装了一个组件 unified-dispose-spri
转载
2024-06-11 22:13:26
71阅读
【常用命令】 mvn validate
mvn compile//编译项目的源代码
mvn test-compile //编译项目测试代码
mvn test //使用已编译的测试代码,测试已编译的源代码
mvn package //已发布的格式,如jar,将已编译的源代码打包
mvn integration-test //在集成测试可以运行的环境中处理和发布包
mvn verify //
maven本身不是一个单元测试框架,java中主流的单元测试框架为JUnit和TestNG,maven所做的只是在构建执行到特定生命周期阶段的时候,通过插件来执行junit或者TestNG的测试用例,这一插件就是大名鼎鼎的maven-surefire-plugin。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径下所有符合下列命名规约的测试类:
# **/
转载
2024-05-05 19:58:38
214阅读
问题描述springboot定时任务用起来大家应该都会用,加两注解,加点配置就可以运行。但是如果仅仅处在应用层面的话,有很多内在的问题开发中可能难以察觉。话不多说,我先用一种极度夸张的手法,描述一下遇到的一个问题。@Component
public class ScheduleTest {
@Scheduled(initialDelay = 1000,fixedRate = 2*1000)
转载
2024-02-21 11:52:06
74阅读
spring boot之@Scheduled原理前沿源码分析 前沿当一个方法被加上@Schedule注解,然后做一些相关配置,在Spring容器启动之后,这个方法就会按照@Schedule注解的配置周期性或者延迟执行。Spring是如何办到这个的,本文就讲解一下这块的原理。源码分析扫描Task 熟悉Spring的人都知道BeanPostProcessor这个回调接口,Spring框架扫描所有被@
转载
2024-03-20 15:01:00
139阅读
>mvn test -Dtest=[ClassName]运行测试类中指定的方法:(这个需要maven-surefire-plugin:2.7.3以上版本才能支持)>mvn test -Dtest=[ClassName]#[MethodName]
//[MethodName]为要运行的方法名,支持*通配符,范例:
>mvn test -Dtest=MyClassTest#test1
转载
2024-05-01 22:04:41
314阅读
SpringBoot启动流程以下将从springboot的入口类SpringApplication.run(TestApplication.class,args);开始分析1 进入run方法会先调用new SpringApplication()构造方法进行初始化操作public SpringApplication(ResourceLoader resourceLoader, Class<?&
转载
2024-08-15 19:39:23
52阅读
Acceptor监听每个acceptor绑定一个ServerSocketChannel通道ServerConnector由其管理容器启动start打开连接:打开ServerSocketChannel通道,并配置accept通道(_acceptChannel)为阻塞模式,绑定地址端口构建org.eclipse.jetty.server.AbstractConnector.Acceptor并提交至线程
常用命令1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 2. 创建Maven的Web项目: &n
SpringBoot作为一种流行的Java框架,其单元测试的重要性不言而喻。在这篇博客中,我们将深入剖析SpringBoot单元测试的底层原理。单元测试的概念单元测试是软件开发过程中的一个重要环节,它是对软件中的最小可测试单元进行检查和验证。对于函数、模块、或对象进行单元测试,可以验证其是否能够正常工作。SpringBoot单元测试的重要性在SpringBoot中,单元测试可以帮助我们确保代码的质
从JavaEE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct。这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明。@PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
转载
2024-03-28 10:15:57
730阅读
探究问题 我们之前写的useController,是怎么运行的,从pom.xml入手1.pom.xml文件可以发现springboot启动类有一个父项目打开spring-boot-start-parent 可以发现这个依赖主要是管理资源过滤和插件的 还发现了spring-boot-dependencies,它是当前依赖的父依赖,我们点它查看 发现springboot应用里面所有依赖版本的地
基于注解(静态)基于注解@Scheduled,默认是单线程,开启多个任务时,任务的执行时机会受到上一个任务执行时间的影响。 例如:方法a和b,a的执行卡住了,即使时间到了b也不会执行,也是串行 //例如:方法a和b可以同时执行,但是方法a的前一次任务和后一次任务串行@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling
转载
2024-02-16 20:50:49
114阅读
前言ThreadLocal 的经典使用场景是数据库连接、 session 管理、多线程等……比如在Spring中,发挥着巨大的作用,在管理Request作用域中的Bean、事务管理、任务调度、AOP等模块都不同程度使用了ThreadLocal 。 Spring中绝大部分Bean,都可以声明成Singleton作用域,采用ThreadLocal进行封装,因此有状态的Bean,就能够以sin
前言:在springboot默认的线程池中,是单一线程。所以默认情况下,所有Scheduled不能并发执行。 这里简单的写了三个方案写法 解决方法都是自定义一个线程池, 一般通常的写法是下面这种,重写SchedulingConfigurer ,使用自定义的Scheduled方案一、@Configuration
public class TestConfiguration implements Sc
转载
2024-02-16 20:21:33
383阅读
动态黑盒测试概念:不深入代码细节测试软件的一种方法。有效的动态测试也需要软件行为的一些定义,即需求文档或产品说明书。测试用例:指进行测试时使用的特定输入以及测试软件的过程步骤。选择测试用例是最重要的一项任务。注:采用大爆炸或边写边改模式开发的软件可能没有产品说明书,这时可以使用探索测试技术,了解软件、设计软件和执行测试同时进行。一. 测试的基本方法:通过性测试和失效性测试 通过行测试:确认软件至少
我在自己的项目中引入了 MapStruct【https://mapstruct.org/】用于完成对象间映射转换。MapStruct框架的作用不过多解释了,想要了解的可以看下它的官网介绍。主要作用就是可以通过配置,定义对象和对象之间的映射,减轻编码负担。MapStruct性能很高。之所以快,是因为它没有用反射。之所以能不用反射,是因为它是在程序编译期间,直接生成了对象转换的类文件。这段比较抽象,但
转载
2024-03-20 15:39:19
226阅读
对junit单元测试的报告:[java] view plaincopy 1. -------------------------------------------------------
2.
3. -------------------------------------------------------
4. Running com.liuyan.account
目录SpringBoot定时任务基于注解的定时任务@EnableScheduling开启定时任务@Scheduled设置定时任务@Scheduled开发示例开启多线程定时任务默认单线程定时任务问题开启多线程定时任务开启异步定时任务@EnableAsync开启异步功能@Async设置异步方法配置异步方法线程池总结参考 SpringBoot定时任务Spring框架提供定时任务的功能,可以通过@Sch
转载
2024-03-18 20:04:04
160阅读
在java开发中定时任务的实现有多种方式,jdk有自己的定时任务实现方式,很多框架也有定时任务的实现方式。这里,我介绍一种很简单的实现方式,在Spring Boot项目中使用两个注解即可实现。在spring boot的启动类上面添加 @EnableScheduling 注解新创建一个类,用来实现定时任务,这个类要注册为Bean才行,所以要加上 @Component 、@Repository 、 @
转载
2024-03-11 07:28:26
149阅读