Spring的IOC创建对象方式
Spring中文文档:https://docs.spring.io/spring-framework/docs/5.2.0.RELEASE/spring-framework-reference/core.html#beans-factory-metadata
可分为有参创建和无参创建
Spring的IOC创建对象时只要写在XML文件中的都会进行创建如下代码
User.java
package pojo; public class User { private String name; public User() { System.out.println("User的无参构造"); } public User(String name) { System.out.println("User的有参构造"+name); this.name=name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void show() { System.out.println("name="+name); } @Override public String toString() { return "User{" + "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"> <!-- services --> <!-- 无参构造创建对象 --> <bean id="user" class="pojo.User"> <property name="name" value="苗可卓"/> </bean> <!-- 有参方式创建对象 --> <!-- 下标方式创建有参构造 --> <bean id="user1" class="pojo.User"> <constructor-arg index="0" value="苗可卓1"/> </bean> <!-- 参数类型创建 --> <bean id="user2" class="pojo.User"> <constructor-arg type="java.lang.String" value="苗可卓2"/> </bean> </beans>
mytest.java
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import pojo.User; public class mytest { public static void main(String[] args) { ApplicationContext context =new ClassPathXmlApplicationContext("beans.xml"); User user=(User) context.getBean("user1"); user.show(); } }
输出结果
分析:只要是在xml中的bean对象都会被创建好,调用时即可使用