簡體   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