繁体   English   中英

@ComponentScan 在我的 Minecraft 插件中不起作用

[英]@ComponentScan doesn't work in my Minecraft plugin

我正在为 Minecraft 服务器创建一个插件,我在其中使用了这个 SpringFramework。 我使用 JavaConfig + Annotations,但由于@ComponentScan,我的项目无法正常运行。我发现这只存在于 Minecraft 服务器插件中,但我可能是错的。 虽然在正常的 Spring 项目中,一切都正常扫描

我有一个这样的目录:me.stordshally.testplugin

主要 class (me.stordshally.testplugin.Main)

public class Main extends JavaPlugin {

   private User user;

   @Override
   public void onEnable() {

       ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
       user = context.getBean(FacebookUser.class);
   }
}

JavaConfig (me.stordshally.testplugin.SpringConfig)

@Configuration
@ComponentScan
public class SpringConfig {
}

组件(me.stordshally.testplugin.FacebookUser)(该目录中还存在用户界面)

@Component
public class FacebookUser implements User {

   @Override
   public String getNet() {
       return "Facebook";
   }
}

而此刻 context.getBean 我得到这个例外:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'me.stordshally.testplugin.FacebookUser' available

onEnable - 在服务器启动时启动,将其视为 psvm 的模拟。

为什么会这样? 我该如何修复我的 ComponentScan?

Github 用于测试: https://github.com/Prot-CN/SpringBug

理想情况下,更多信息会有所帮助,但是,我不知道src package 结构是什么样的,但请尝试显式提供基数 package

@ComponentScan(basePackages = "me.stordshally.testplugin")

这明确地告诉 spring 在哪里寻找潜在的 bean 来创建。 请确保提供所有 bean 所在的路径。

如果这不起作用,则表示由于某种原因您的应用程序失败,请尝试通过将日志级别设置为调试来在调试模式下运行您的应用程序。 它会告诉问题出在哪里。 这是我从所提供的信息中可以看出的最好的信息,希望这会有所帮助。

我正在为我使用这个 SpringFramework 的 Minecraft 服务器创建一个插件。 而且我使用JavaConfig + Annotations,但由于@ComponentScan,我的项目无法正常运行。我发现这仅在Minecraft服务器插件中,但我可能是错的。 尽管在正常的 Spring 项目中,一切都正常扫描

我有一个这样的目录:me.stordshally.testplugin

主要 class (me.stordshally.testplugin.Main)

public class Main extends JavaPlugin {

   private User user;

   @Override
   public void onEnable() {

       ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
       user = context.getBean(FacebookUser.class);
   }
}

JavaConfig (me.stordshally.testplugin.SpringConfig)

@Configuration
@ComponentScan
public class SpringConfig {
}

组件(me.stordshally.testplugin.FacebookUser)(该目录中也存在用户界面)

@Component
public class FacebookUser implements User {

   @Override
   public String getNet() {
       return "Facebook";
   }
}

目前 context.getBean 我得到了这个异常:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'me.stordshally.testplugin.FacebookUser' available

onEnable - 在服务器启动时启动,将其视为 psvm 的模拟。

为什么会这样? 如何修复我的 ComponentScan?

Github 用于测试: https://github.com/Prot-CN/SpringBug

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM