@Configuration
public class MyConfigurer implements WebMvcConfigurer {
@Bean
public Book getBook() {
Book book = new Book();
book.setName("容器生成");
return book;
}
}
注意两个容器虽然都是Bean工厂关键类,管理同样的Bean类型,但是他们管理的Bean对象不是同一个。
1. SpringApplication类 - 启动项目类
@SpringBootApplication
@MapperScan(value="top.linruchang.springbootdemo.dao")
public class SpringbootdemoApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringbootdemoApplication.class, args);
ConfigurableListableBeanFactory beanFactory = run.getBeanFactory();
// 获取到同类型的对象都是同一个对象
Book bean = beanFactory.getBean(Book.class);
System.out.println(bean);
}
}
@SpringBootApplication
public class App
{
public static void main( String[] args ) throws SQLException {
ApplicationContext context = SpringApplication.run(App.class, args);
User bean = context.getBean(User.class);
System.out.println(bean);
}
}
2. AnnotationConfigApplicationContext类
@SpringBootApplication
@MapperScan(value="top.linruchang.springbootdemo.dao")
public class SpringbootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
AnnotationConfigApplicationContext acac = new AnnotationConfigApplicationContext(MyConfigurer.class);
Book bean = acac.getBean(Book.class);
System.out.println(bean);
}
}