IOC----控制反转,也就是把对象的管理交由Spring来管理,我们程序员就不需要手动的创建对象了。
那么IOC创建对象的方式呢?
代码如下:
User类
package cn.ljr.Spring.Dao;
public class User {
private String name;
public User(){
System.out.println("user被创建了");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
UserT类
package cn.ljr.Spring.Dao;
public class UserT {
private String name;
public UserT(String name){
this.name = name;
System.out.println("userT" + this.name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
测试代码
import cn.ljr.Spring.Dao.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IOCtest {
public static void main(String[] args) {
/**这句话就已经把bean对象给全部创建好了--可以通过构造方法里的输出可以看出来**/
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
User user1 = (User)context.getBean("user");
User user2 = (User)context.getBean("user");
System.out.println(user1 == user2);/**这里可以看到user1与user2是一个对象**/
System.out.print(user1.getName());
}
}
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="user" class="cn.ljr.Spring.Dao.User">
<!--这里的name是有参构造器的参数名字,一定要一一对应-->
<property name="name" value="连久瑞"/>
</bean>
<!--这个类没有无参构造方法,只有有参构造方法,所以使用constructor-arg这个标签来创建对象-->
<bean id="userT" class="cn.ljr.Spring.Dao.UserT">
<constructor-arg name="name" value="连久瑞"/>
</bean>
</beans>
这两种方法要牢记呀!!!
冲冲冲,毕业去大厂。