三、Hello Spring
public class User {
private String name;
public void show() {
System.out.println("name = " + name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--使用Spring来创建对象,在Spring这些都称为Bean
bean = 对象 new Hello();
id = 变量名
class = new的对象
property 相当于给对象中的属性设置一个值
-->
<bean id="user" class="com.zhang.pojo.User">
<property name="name" value="张三"/>
</bean>
</beans>
public static void main(String[] args) {
//获取Spring的上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
User user = (User) context.getBean("user");
user.show();
}
四、IOC创建对象的方式
-
使用无参构造创建对象(默认)
-
使用有参构造穿件对象
-
使用下标方式注入 以0开始 以此类推
<bean id="user" class="com.zhang.pojo.User"> <constructor-arg index="0" value="张三"/> </bean>
-
容器可以使用与简单类型匹配的类型 —–不建议使用
<bean id="user" class="com.zhang.pojo.User"> <constructor-arg type="java.lang.String" value="张三"/> </bean>
-
直接使用参数名注入
<bean id="user" class="com.zhang.pojo.User"> <constructor-arg name="name" value="战三"/> </bean>
-
总结:在配置文件加载的时候,容器中管理的对象就已经初始化了