From 251b4c660a46ae0e20d6b6790aacc228d711539b Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Wed, 1 Mar 2023 15:50:42 +0800 Subject: [PATCH] =?UTF-8?q?Preload=E5=A4=84=E7=90=86=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../neutrino/core/context/ApplicationContext.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java index 603d34af..fa0c57bc 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java @@ -125,8 +125,7 @@ public class ApplicationContext implements LifeCycle { continue; } Optional methodOptional = methodSet.stream().filter(m -> m.getName().equals(name) && Modifier.isStatic(m.getModifiers()) - && (m.getParameterCount() == 0 || - (m.getParameterCount() == 1 && m.getParameters()[0].getType().isArray() && String.class.isAssignableFrom(m.getParameters()[0].getType().getComponentType())))) + && (m.getParameterCount() == 0 || m.getParameterCount() == 1)) .findFirst(); if (!methodOptional.isPresent()) { continue; @@ -136,8 +135,16 @@ public class ApplicationContext implements LifeCycle { log.debug("PreLoad execute {}#{}", c.getName(), method.getName()); if (method.getParameterCount() == 0) { method.invoke(o); + } else if (method.getParameterCount() == 1){ + if (String[].class.isAssignableFrom(method.getParameters()[0].getType())) { + method.invoke(o, new Object[]{this.environment.getMainArgs()}); + } else if (Environment.class.isAssignableFrom(method.getParameters()[0].getType())){ + method.invoke(o, this.environment); + } else { + log.error("PreLoad execute failed. init method args nonsupport!"); + } } else { - method.invoke(o, new Object[]{this.environment.getMainArgs()}); + log.error("PreLoad execute failed. init method args nonsupport!"); } } }