IOC创建对象的方式
1.默认通过无参构造
2.假如要使用有参构造创建
- 下标赋值
<bean id="user" class="com.kuang.pojo.User">
<constructor-arg index="0" value="mingiao"/>
</bean>
- 类型赋值
<bean id="user" class="com.kuang.pojo.User">
<constructor-arg type="java.lang.String" value="mingiao"/>
</bean>
当几个相同类型的变量同时存在时,不建议使用这种方法,以免混淆。
- 参数名赋值
<bean id="user" class="com.kuang.pojo.User">
<constructor-arg name="name" value="mingiao"/>
</bean>
3. 在配置文件加载的时候,容器中管理的对象就已经初始化了
spring配置
1.别名
<alias name="user" alias="hhh"/>
name:对象名 。
alias:别名,可以通过别名获取到这个对象。
2.Bean的配置
<bean id="userT" class="com.kuang.pojo.UserT" name="u1;u2;u3" >
<property name="name" value="123"/>
</bean>
<!-- id:bean的唯一标识(对象名)-->
<!-- class:bean对象的全限定名:包名+类型-->
<!-- name:别名(可以同时取多个别名)-->
3.import
可以将其他的配置文件(xml)导入,使用的时候,用总的配置文件就行了
<import resource="beans.xml"/>
4.例子
- UserT.java
public class UserT {
private String name;
public UserT(){
System.out.println("UserT被创建了");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+name);
}
}
- bean.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="userT" class="com.kuang.pojo.UserT" name="u1;u2;u3" >
<property name="name" value="123"/>
</bean>
<alias name="userT" alias="hhh"/>
</beans>
- .applicationContext.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">
<import resource="beans.xml"/>
</beans>
-
测试
public class MyTest { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); UserT usert1=(UserT) context.getBean("u1");//name取别名 UserT usert2=(UserT) context.getBean("hhh");//alias取别名 usert1.show(); usert2.show(); } }
-
运行结果