raw*_*awa 1 java spring spring-mvc
所以我只想打印已经加载的所有bean,我知道这个getBeanDefinitionNames()方法是很多人建议的.为此我明白你需要一个ApplicationContext我自动装配的,但是当我调用getBeanDefinitionNames()它时,我在对象上得到一个空指针异常:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
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();
}
}
Run Code Online (Sandbox Code Playgroud)
BeansPrinter不是一个春天豆.自动装配仅在父母是春豆的情况下才有效.
使用@Component或注释BeansPrinter@Service
@Service("beansPrinter")
public class BeansPrinter
Run Code Online (Sandbox Code Playgroud)
在你的主要课程中你可以做类似的事情:
ApplicationContext ctx = SpringApplication.run(Application.class, args);
Run Code Online (Sandbox Code Playgroud)
然后ctx.getBean("beansPrinter")得到你的豆
| 归档时间: |
|
| 查看次数: |
7473 次 |
| 最近记录: |