Так что я просто хотел распечатать все загруженные бобы, и я понимаю, что метод getBeanDefinitionNames()
- это то, что предлагают многие люди. Для этого я понимаю, вам нужен ApplicationContext
, который я autowired, как показано ниже, но я получаю исключения нулевого указателя на объект, когда я звоню getBeanDefinitionNames()
на нем:Spring: @ Не работает с ApplicationContext
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
public class BeansPrinter
{
@Autowired
private ApplicationContext appContext;
public void printBeans()
{
System.out.println("Number of beans:");
System.out.println(appContext.getBeanDefinitionCount());
String[] names = appContext.getBeanDefinitionNames();
for(String name : names)
{
System.out.println("-----------------");
System.out.println(name);
}
}
}
Application.java
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
BeansPrinter b = new BeansPrinter();
b.printBeans();
}
}
'@ Component' отсутствует в вашем классе 'BeansPrinter' – EpicPandaForce