@Confguration->告诉spring这是一个配置类
以前我们是使用配置文件来注册bean的,现如今可以用@Configuration
来代替配置文件。
//配置配==配置文件
@Configuration // 告诉Spring这是一个配置类,等同于以前的配置文件
public class MainConfig {
// @Bean注解是给IOC容器中注册一个bean,id默认是用方法名作为id,类型自然就是返回值的类型
@Bean
public Person person() {
return new Person("liayun", 20);
}
}
如何通过注解配置类来获取ioc容器和bean呢?
public class MainTest {
public static void main(String[] args) {
// ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); 以前我们是通过配置文件的路径来获取Ioc容器,现在我们是基于注解开发,不用ClassPathXmlApplicationContext了
// Person person = (Person) applicationContext.getBean("person");
// System.out.println(person);
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class /*这里存放的是配置类的class对象*/); //获取ioc容器
Person person = applicationContext.getBean(Person.class); //获取ioc容器里面的组件,也就是Bean对象
System.out.println(person);
// Person这个类型的组件在IOC容器中的名字是什么呢?
String[] namesForType = applicationContext.getBeanNamesForType(Person.class);
for (String name : namesForType) {
System.out.println(name);
}
}