Spring注解系列一:组件注册-@Configuration和@Bean

1、引入依赖


    org.springframework
	spring-context
	4.3.12.RELEASE

2、创建类Person

public class Person {

	private String name;
	private Integer age;
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	
	public Person(String name, Integer age) {
		super();
		this.name = name;
		this.age = age;
	}
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}

}

3、创建配置文件beans.xml



    
    
        
        
    
    

4、创建测试类

public class MainTest {
	
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		//根据配置文件获取applicationContext 
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
		//根据bean的名称获取组件
		Person bean = (Person) applicationContext.getBean("person");
		System.out.println(bean);
	}

}

5、用配置类代替配置文件

//配置类就相当于配置文件
@Configuration  //告诉Spring这是一个配置类
public class MainConfig {
	
	//给容器中注册一个Bean;类型为返回值的类型,id默认是用方法名作为id。也可以在括号内指定id
	@Bean("person")
	public Person person01(){
		return new Person("lisi", 20);
	}
}

6、修改测试类

public class MainTest {
	
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		//根据配置类获取applicationContext 
		ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
		//根据bean的类型获取组件
		Person bean = applicationContext.getBean(Person.class);
		System.out.println(bean);
		
		//根据bean的类型获取组件名称
		String[] namesForType = applicationContext.getBeanNamesForType(Person.class);
		for (String name : namesForType) {
			System.out.println(name);
		}
	}

}

在这里插入图片描述

你可能感兴趣的:(Spring注解)