diff --git a/.gitignore b/.gitignore index cd8c847e..574b56e5 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ yarn-error.log* tests/**/coverage/ tests/e2e/reports selenium-debug.log +cutejava-doc # Editor directories and files .idea diff --git a/cutejava-doc/docs/.vuepress/public/logo/logo.png b/cutejava-doc/docs/.vuepress/public/logo/logo.png new file mode 100644 index 00000000..7cbbd8d2 Binary files /dev/null and b/cutejava-doc/docs/.vuepress/public/logo/logo.png differ diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsBeanLoadFinishListener.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BeanLoadFinishListener.java similarity index 91% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsBeanLoadFinishListener.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BeanLoadFinishListener.java index 8fdbb570..1b600aca 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsBeanLoadFinishListener.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BeanLoadFinishListener.java @@ -28,7 +28,7 @@ import org.springframework.stereotype.Component; */ @Slf4j @Component -public class CsBeanLoadFinishListener implements ApplicationListener { +public class BeanLoadFinishListener implements ApplicationListener { @Override public void onApplicationEvent(ContextRefreshedEvent event) { log.info("所有的Bean都加载完毕了"); diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsBootApplication.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsBootApplication.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java index 3c99d002..b9628177 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsBootApplication.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java @@ -31,10 +31,10 @@ import java.net.UnknownHostException; * @date 2024-04-20 */ @Slf4j -public class CsBootApplication { +public class BootApplication { @Bean - public SpringBeanHolder springBeanHolder() { - return new SpringBeanHolder(); + public CsSpringBeanHolder springBeanHolder() { + return new CsSpringBeanHolder(); } protected static void inited(ConfigurableApplicationContext application) throws UnknownHostException { diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/RequestHolder.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/RequestHolder.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java index 94c27068..e54c18b8 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/RequestHolder.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java @@ -9,7 +9,7 @@ import java.util.Objects; /** * 获取 HttpServletRequest */ -public class RequestHolder { +public class CsRequestHolder { public static HttpServletRequest getHttpServletRequest() { return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/SpringBeanHolder.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java similarity index 89% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/SpringBeanHolder.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java index b4ce0928..0b9853b9 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/SpringBeanHolder.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java @@ -15,7 +15,7 @@ import java.util.List; @Slf4j @SuppressWarnings({"unchecked", "all"}) -public class SpringBeanHolder implements ApplicationContextAware, DisposableBean { +public class CsSpringBeanHolder implements ApplicationContextAware, DisposableBean { private static ApplicationContext applicationContext = null; private static final List CALL_BACKS = new ArrayList<>(); @@ -29,7 +29,7 @@ public class SpringBeanHolder implements ApplicationContextAware, DisposableBean */ public synchronized static void addCallBacks(CallBack callBack) { if (addCallback) { - SpringBeanHolder.CALL_BACKS.add(callBack); + CsSpringBeanHolder.CALL_BACKS.add(callBack); } else { log.warn("CallBack:{} 已无法添加!立即执行", callBack.getCallBackName()); callBack.executor(); @@ -109,22 +109,22 @@ public class SpringBeanHolder implements ApplicationContextAware, DisposableBean @Override public void destroy() { - SpringBeanHolder.clearHolder(); + CsSpringBeanHolder.clearHolder(); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - if (SpringBeanHolder.applicationContext != null) { - log.warn("SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:" + SpringBeanHolder.applicationContext); + if (CsSpringBeanHolder.applicationContext != null) { + log.warn("SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:" + CsSpringBeanHolder.applicationContext); } - SpringBeanHolder.applicationContext = applicationContext; + CsSpringBeanHolder.applicationContext = applicationContext; if (addCallback) { - for (CallBack callBack : SpringBeanHolder.CALL_BACKS) { + for (CallBack callBack : CsSpringBeanHolder.CALL_BACKS) { callBack.executor(); } CALL_BACKS.clear(); } - SpringBeanHolder.addCallback = false; + CsSpringBeanHolder.addCallback = false; } /** diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/CsHealthCheckController.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java similarity index 97% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/CsHealthCheckController.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java index d021326a..a5c077ca 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/CsHealthCheckController.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java @@ -31,7 +31,7 @@ import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor @RequestMapping("/healthCheck") @Api(tags = "系统:健康检查接口") -public class CsHealthCheckController { +public class HealthCheckController { @Autowired private CsHealthCheckPointService healthCheckPointService; diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java index c36488f4..8b027b03 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java @@ -1,6 +1,6 @@ package cn.odboy.framework.quartz.core; -import cn.odboy.framework.context.SpringBeanHolder; +import cn.odboy.framework.context.CsSpringBeanHolder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.util.ReflectionUtils; @@ -18,7 +18,7 @@ public class QuartzRunnable implements Callable { private final String params; public QuartzRunnable(String beanName, String methodName, String params) throws NoSuchMethodException, SecurityException { - this.target = SpringBeanHolder.getBean(beanName); + this.target = CsSpringBeanHolder.getBean(beanName); this.params = params; if (StringUtils.isNotBlank(params)) { this.method = target.getClass().getDeclaredMethod(methodName, String.class); diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/IpUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/IpUtil.java index 35749f6b..d323c24b 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/IpUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/IpUtil.java @@ -1,6 +1,6 @@ package cn.odboy.util; -import cn.odboy.framework.context.SpringBeanHolder; +import cn.odboy.framework.context.CsSpringBeanHolder; import lombok.experimental.UtilityClass; import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; import net.dreamlu.mica.ip2region.core.IpInfo; @@ -17,7 +17,7 @@ public final class IpUtil { /** * 注入bean */ - private final static Ip2regionSearcher IP_SEARCHER = SpringBeanHolder.getBean(Ip2regionSearcher.class); + private final static Ip2regionSearcher IP_SEARCHER = CsSpringBeanHolder.getBean(Ip2regionSearcher.class); /** * 根据ip获取详细地址 diff --git a/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineJobBean.java b/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineJobBean.java index 0d34edd1..a8e6a4e7 100644 --- a/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineJobBean.java +++ b/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineJobBean.java @@ -10,7 +10,7 @@ import cn.odboy.devops.dal.mysql.PipelineInstanceMapper; import cn.odboy.devops.dal.redis.PipelineInstanceDAO; import cn.odboy.devops.framework.pipeline.model.PipelineNodeTemplateVo; import cn.odboy.devops.service.core.PipelineInstanceNodeService; -import cn.odboy.framework.context.SpringBeanHolder; +import cn.odboy.framework.context.CsSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import com.alibaba.fastjson2.JSON; import lombok.extern.slf4j.Slf4j; @@ -33,11 +33,11 @@ public class PipelineJobBean implements InterruptableJob { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { // 获取服务 - PipelineInstanceMapper pipelineInstanceMapper = SpringBeanHolder.getBean(PipelineInstanceMapper.class); - PipelineInstanceNodeService pipelineInstanceNodeService = SpringBeanHolder.getBean(PipelineInstanceNodeService.class); - PipelineInstanceDAO pipelineInstanceDAO = SpringBeanHolder.getBean(PipelineInstanceDAO.class); - PipelineJobManage pipelineJobManage = SpringBeanHolder.getBean(PipelineJobManage.class); - PipelineNodeJobManage pipelineNodeJobManage = SpringBeanHolder.getBean(PipelineNodeJobManage.class); + PipelineInstanceMapper pipelineInstanceMapper = CsSpringBeanHolder.getBean(PipelineInstanceMapper.class); + PipelineInstanceNodeService pipelineInstanceNodeService = CsSpringBeanHolder.getBean(PipelineInstanceNodeService.class); + PipelineInstanceDAO pipelineInstanceDAO = CsSpringBeanHolder.getBean(PipelineInstanceDAO.class); + PipelineJobManage pipelineJobManage = CsSpringBeanHolder.getBean(PipelineJobManage.class); + PipelineNodeJobManage pipelineNodeJobManage = CsSpringBeanHolder.getBean(PipelineNodeJobManage.class); // 参数解析 JobDataMap jobDataMap = jobExecutionContext.getMergedJobDataMap(); @@ -160,8 +160,8 @@ public class PipelineJobBean implements InterruptableJob { public void interrupt() throws UnableToInterruptJobException { this.interrupted = true; if (this.currentInstanceId != null && StrUtil.isNotBlank(this.currentNodeCode)) { - PipelineInstanceMapper pipelineInstanceMapper = SpringBeanHolder.getBean(PipelineInstanceMapper.class); - PipelineInstanceDAO pipelineInstanceDAO = SpringBeanHolder.getBean(PipelineInstanceDAO.class); + PipelineInstanceMapper pipelineInstanceMapper = CsSpringBeanHolder.getBean(PipelineInstanceMapper.class); + PipelineInstanceDAO pipelineInstanceDAO = CsSpringBeanHolder.getBean(PipelineInstanceDAO.class); int seconds = 30_000; log.info("中断信号已发出,等待最多 {} 秒,若未自行结束则强制终止线程", seconds); diff --git a/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineNodeJobBean.java b/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineNodeJobBean.java index 5559ccaf..677a9c19 100644 --- a/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineNodeJobBean.java +++ b/cutejava/cutejava-module-devops/src/main/java/cn/odboy/devops/framework/pipeline/core/PipelineNodeJobBean.java @@ -5,7 +5,7 @@ import cn.odboy.devops.constant.pipeline.PipelineStatusEnum; import cn.odboy.devops.framework.pipeline.model.PipelineNodeJobExecuteResult; import cn.odboy.devops.framework.pipeline.model.PipelineNodeTemplateVo; import cn.odboy.devops.service.core.PipelineInstanceNodeService; -import cn.odboy.framework.context.SpringBeanHolder; +import cn.odboy.framework.context.CsSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import lombok.extern.slf4j.Slf4j; import org.quartz.Job; @@ -25,7 +25,7 @@ import java.util.Date; public class PipelineNodeJobBean implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - PipelineInstanceNodeService pipelineInstanceNodeService = SpringBeanHolder.getBean(PipelineInstanceNodeService.class); + PipelineInstanceNodeService pipelineInstanceNodeService = CsSpringBeanHolder.getBean(PipelineInstanceNodeService.class); JobDataMap jobDataMap = jobExecutionContext.getMergedJobDataMap(); long instanceId = jobDataMap.getLong(PipelineConst.INSTANCE_ID); @@ -34,7 +34,7 @@ public class PipelineNodeJobBean implements Job { try { String serviceName = PipelineConst.EXECUTOR_PREFIX + nodeCode; - PipelineNodeJobExecutor pipelineNodeJobExecutor = SpringBeanHolder.getBean(serviceName); + PipelineNodeJobExecutor pipelineNodeJobExecutor = CsSpringBeanHolder.getBean(serviceName); pipelineInstanceNodeService.updatePipelineInstanceNodeByArgs(instanceId, nodeCode, PipelineStatusEnum.RUNNING, PipelineStatusEnum.RUNNING.getDesc()); PipelineNodeJobExecuteResult executeResult = pipelineNodeJobExecutor.execute(jobDataMap); jobExecutionContext.getMergedJobDataMap().put(PipelineConst.LAST_NODE_RESULT, executeResult); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java index 7776d5a4..55f6c52e 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java @@ -2,7 +2,7 @@ package cn.odboy.system.controller; import cn.odboy.base.CsPageArgs; import cn.odboy.base.CsResultVo; -import cn.odboy.framework.context.SpringBeanHolder; +import cn.odboy.framework.context.CsSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; @@ -120,7 +120,7 @@ public class SystemQuartzJobController { private void checkBean(String beanName) { // 避免调用攻击者可以从SpringContextHolder获得控制jdbcTemplate类 // 并使用getDeclaredMethod调用jdbcTemplate的queryForMap函数,执行任意sql命令。 - if (!SpringBeanHolder.getAllServiceBeanName().contains(beanName)) { + if (!CsSpringBeanHolder.getAllServiceBeanName().contains(beanName)) { throw new BadRequestException("非法的 Bean,请重新输入!"); } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java index c63e05b6..20a3e65f 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java @@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.jwt.JWT; import cn.hutool.jwt.JWTUtil; import cn.odboy.constant.SystemConst; -import cn.odboy.framework.context.SpringBeanHolder; +import cn.odboy.framework.context.CsSpringBeanHolder; import cn.odboy.system.constant.SystemDataScopeEnum; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; @@ -32,7 +32,7 @@ public class CsSecurityHelper { * @return UserDetails */ public static UserDetails getCurrentUser() { - UserDetailsService userDetailsService = SpringBeanHolder.getBean(UserDetailsService.class); + UserDetailsService userDetailsService = CsSpringBeanHolder.getBean(UserDetailsService.class); return userDetailsService.loadUserByUsername(getCurrentUsername()); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java index 4ce55323..b6c2fdcd 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java @@ -5,7 +5,7 @@ import cn.hutool.extra.template.Template; import cn.hutool.extra.template.TemplateConfig; import cn.hutool.extra.template.TemplateEngine; import cn.hutool.extra.template.TemplateUtil; -import cn.odboy.framework.context.SpringBeanHolder; +import cn.odboy.framework.context.CsSpringBeanHolder; import cn.odboy.framework.quartz.core.QuartzRunnable; import cn.odboy.framework.redis.RedisHelper; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; @@ -31,16 +31,16 @@ public class ExecutionJobBean extends QuartzJobBean { /** * 此处仅供参考,可根据任务执行情况自定义线程池参数 */ - private final ThreadPoolTaskExecutor executor = SpringBeanHolder.getBean("taskAsync"); + private final ThreadPoolTaskExecutor executor = CsSpringBeanHolder.getBean("taskAsync"); @Override public void executeInternal(JobExecutionContext context) { // 获取任务 SystemQuartzJobTb quartzJob = (SystemQuartzJobTb) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY); // 获取spring bean - SystemQuartzLogMapper quartzLogMapper = SpringBeanHolder.getBean(SystemQuartzLogMapper.class); - SystemQuartzJobService systemQuartzJobService = SpringBeanHolder.getBean(SystemQuartzJobService.class); - RedisHelper redisHelper = SpringBeanHolder.getBean(RedisHelper.class); + SystemQuartzLogMapper quartzLogMapper = CsSpringBeanHolder.getBean(SystemQuartzLogMapper.class); + SystemQuartzJobService systemQuartzJobService = CsSpringBeanHolder.getBean(SystemQuartzJobService.class); + RedisHelper redisHelper = CsSpringBeanHolder.getBean(RedisHelper.class); String uuid = quartzJob.getUuid(); @@ -88,7 +88,7 @@ public class ExecutionJobBean extends QuartzJobBean { systemQuartzJobService.switchQuartzJobStatus(quartzJob); } if (quartzJob.getEmail() != null) { - SystemEmailService emailService = SpringBeanHolder.getBean(SystemEmailService.class); + SystemEmailService emailService = CsSpringBeanHolder.getBean(SystemEmailService.class); // 邮箱报警 if (StringUtil.isNoneBlank(quartzJob.getEmail())) { SystemSendEmailArgs sendEmailRequest = taskAlarm(quartzJob, ExceptionUtil.stacktraceToString(e)); diff --git a/cutejava/cutejava-starter/src/main/java/cn/odboy/AppRun.java b/cutejava/cutejava-starter/src/main/java/cn/odboy/AppRun.java index b7e68222..0e988bf6 100644 --- a/cutejava/cutejava-starter/src/main/java/cn/odboy/AppRun.java +++ b/cutejava/cutejava-starter/src/main/java/cn/odboy/AppRun.java @@ -1,6 +1,6 @@ package cn.odboy; -import cn.odboy.framework.context.CsBootApplication; +import cn.odboy.framework.context.BootApplication; import com.anwen.mongo.config.MongoPlusAutoConfiguration; import com.anwen.mongo.config.OverrideMongoConfiguration; import io.swagger.annotations.Api; @@ -13,7 +13,7 @@ import java.net.UnknownHostException; @Api(hidden = true) @SpringBootApplication(exclude = OverrideMongoConfiguration.class) @Import(MongoPlusAutoConfiguration.class) -public class AppRun extends CsBootApplication { +public class AppRun extends BootApplication { public static void main(String[] args) throws UnknownHostException { SpringApplication springApplication = new SpringApplication(AppRun.class);