Spring註解系列一:組件註冊-@Configuration和@Bean

1、引入依賴

<dependency>
    <groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>4.3.12.RELEASE</version>
</dependency>

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="person" class="com.atguigu.bean.Person">
        <property name="age" value="18"></property>
        <property name="name" value="zhangsan"></property>
    </bean>
    
</beans>

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);
		}
	}

}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章