一、给容器注册一个组件,然后将组件从容器中取出来
- 首先编写person.java文件:
package com.xuexi.bean;
public class person1
{
private String lastname;
private Integer age;
private String gender;
private String email;
public void setLastname(String lastname){
this.lastname=lastname;
}
public void setAge(Integer age){
this.age=age;
}
public void setGender(String gender){
this.gender=gender;
}
public void setEmail(String email){
this.email=email;
}
public String getLastname(){
return lastname;
}
public Integer getAge(){
return age;
}
public String getGender(){
return gender;
}
public String getEmail(){
return email;
}
@Override
public String toString(){
return"person1{"+
"lastname='"+lastname+'\''+
", age="+age+
", gender='"+gender+'\''+
", email='"+email+'\''+
'}';
}
}
- 然后编写.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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="person01" class="com.xuexi.bean.person1">
<property name="lastname" value="李四"></property>
<property name="age" value="20"></property>
<property name="email" value="lishi@qq.com"></property>
<property name="gender" value="male"></property>
</bean>
</beans>
有代码可以看到此时给容器注册了一个person01组件,该组件的属性有lastname、age、email、gender。
注册好组件之后就可以从容器中将组件取出来,编写测试文件将组件从容器中取出来,并在控制台处打印出来。
package com.xuexi.test;
import com.xuexi.bean.person1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IOCtest
{
public static void main(String[] args)
{
test();
}
public static void test()
{
ApplicationContext ioc=new ClassPathXmlApplicationContext("IOC.xml");
person1 bean=(person1) ioc.getBean("person01");
System.out.println(bean);
}
}
运行结果:
- 由运行结果可以看到,组件被取出来并在控制台处打印了出来。
二、使用有参构造器注册组件
- 首先创建一个有参构造方法:
public person1(String lastname, Integer age, String gender, String email) {
super();
this.lastname = lastname;
this.age = age;
this.gender = gender;
this.email = email;
}
- 然后编写.xml配置文件注册组件,这次与上次不同的是,不使用<property ></property>而是使用<constructor-arg></constructor-arg>
<bean id="person02" class="com.xuexi.bean.person1">
<constructor-arg name="lastname" value="tom"></constructor-arg>
<constructor-arg name="age" value="24"></constructor-arg>
<constructor-arg name="email" value="tom@qq.com"></constructor-arg>
<constructor-arg name="gender" value="male"></constructor-arg>
</bean>
- 编写测试文件,由于是另外一个组件,所以只需要改一行代码就行,取person02这个组件出来就行,并在控制台处打印出来。
person1 bean=(person1) ioc.getBean("person02");
运行结果:
- 由运行结果可以看到一个新的组件被取出来并在控制台处打印了出来。