Spring获取Bean有以下几种方式:
使用@ComponentScan注解扫描指定包路径下的所有类,通过@Autowired注解自动注入。@Componentpublic class MyClass {@Autowiredprivate MyBean myBean;//...}使用@Configuration注解配置JavaConfig类,使用@Bean注解定义Bean,通过@Autowired注解自动注入。@Configurationpublic class AppConfig {@Beanpublic MyBean myBean() {return new MyBean();}//...}@Componentpublic class MyClass {@Autowiredprivate MyBean myBean;//...}使用@Import注解引入其他配置类,通过@Autowired注解自动注入。@Configurationpublic class AppConfig1 {@Beanpublic MyBean myBean1() {return new MyBean();}//...}@Configurationpublic class AppConfig2 {@Beanpublic MyBean myBean2() {return new MyBean();}//...}@Component@Import({AppConfig1.class, AppConfig2.class})public class MyClass {@Autowiredprivate MyBean myBean1;@Autowiredprivate MyBean myBean2;//...}使用@ImportResource注解引入XML配置文件,通过@Autowired注解自动注入。@Configuration@ImportResource({"classpath:applicationContext.xml"})public class AppConfig {//...}@Componentpublic class MyClass {@Autowiredprivate MyBean myBean;//...}使用ApplicationContext的getBean方法获取Bean。@Componentpublic class MyClass {private MyBean myBean;@Autowiredprivate ApplicationContext applicationContext;@PostConstructpublic void init() {myBean = applicationContext.getBean(MyBean.class);}//...} 
