spring 獲取容器及容器中的物件
阿新 • • 發佈:2019-01-05
spring容器中獲取已注入物件的幾種方式:
首先理解spring容器中是誰負責裝載這些物件:ApplicationContext,對是它;
當啟動服務(springboot、tomcat)之後所有已經配置(註解、xml配置)物件將會例項化,最後放入到ApplicationContext裡面,這裡提供一種spingcloud 啟動時可以檢視的部分虛擬碼:
public class TestApplication {
public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @Bean public CommandLineRunner appRuner(ApplicationContext ac) { return args -> { Object user= ac.getBean("user"); //通過類名(BeanName)獲取已注入物件,這裡user是一個被注入到容器中的Bean==》User類; System.out.println(user); String[] names = ac.getBeanDefinitionNames(); for (int i = 0; i < names.length; i++) { System.out.println(names[i]);//可以看到每個BeanName,但首字母是小寫的 } }; }
}