2023.11.4
今天学习了一下spring的简单使用。
首先需要配置一下spring context和junit的依赖,在pom.xml文件中添加:
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>
定义bean文件:User
public class User {
}
编写spring的配置文件:spring.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="userBean" class="spring6.bean.User"></bean></beans>
bean的id和class属性:
- id属性:代表对象的唯一标识。
- class属性:用来指定要创建的java对象的类名,这个类名必须是全限定类名(带包名)。
编写测试程序:
package test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class FirstSpringTest {@Testpublic void testFirstSpringCode(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");Object userBean = applicationContext.getBean("userBean");System.out.println(userBean);}
}
运行结果:
Spring是如何创建对象的?
// dom4j解析beans.xml文件,从中获取class的全限定类名
// 通过反射机制调用无参数构造方法创建对象
Class clazz = Class.forName("com.powernode.spring6.bean.User");
Object obj = clazz.newInstance();
spring是通过调用类的无参数构造方法来创建对象的,所以要想让spring给你创建对象,必须保证无参数构造方法是存在的。