1、无参构造(默认)
-
编写实体类;
package com.beyond.pojo; 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; } public void show(){ System.out.println("name="+name); } }
-
编写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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="User" class="com.beyond.pojo.User"> <property name="name" value="java"/> </bean> </beans>
-
测试。
import com.beyond.pojo.User; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); User user = (User) context.getBean("User"); user.show(); } }
2、有参构造
2.1、编写实体类;
package com.beyond.pojo;
public class User {
private String name;
public User(String name){
this.name=name;
System.out.println("User的有参构造");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+name);
}
}
2.2、创建对象方式
-
下标赋值;
<!--第一种:下标赋值--> <bean id="User" class="com.beyond.pojo.User"> <constructor-arg index="0" value="遇见狂神说"/> </bean>
-
参数类型赋值(不推荐);
<!--第二种:参数类型赋值--> <bean id="User" class="com.beyond.pojo.User"> <constructor-arg type="java.lang.String" value="遇见狂神说"/> </bean>
-
直接通过参数名赋值;
<!--第三种:直接通过参数名赋值--> <bean id="User" class="com.beyond.pojo.User"> <constructor-arg name="name" value="qinjiang"/> </bean>
2.3、Spring容器中管理对象的原理
-
编写实体类;
package com.beyond.pojo; public class User { private String name; public User(String name){ this.name=name; System.out.println("User的有参构造"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public void show(){ System.out.println("name="+name); } }
package com.beyond.pojo; public class UserTwo { private String name; public UserTwo(){ System.out.println("UserTwo的无参构造"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public void show(){ System.out.println("name="+name); } }
-
编写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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="User" class="com.beyond.pojo.User"> <constructor-arg name="name" value="qinjiang"/> </bean> <bean id="userTwo" class="com.beyond.pojo.UserTwo"> </bean> </beans>
-
测试。
import com.beyond.pojo.User; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); User user = (User) context.getBean("User"); User user2 = (User) context.getBean("User"); //true System.out.println(user==user2); } }
-
结论:在配置文件加载的时候,Spring容器中管理的对象就已经初始化了!