温馨提示×

spring怎么获取bean

小亿
103
2023-09-04 23:34:51
栏目: 编程语言

Spring获取Bean有以下几种方式:

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

0