3.Spring入门程序
第一步:编写实体类
package com.xuan.pojo;
import java.io.Serializable;
/**
* xuan
* 2020/7/15
* 1870136088@qq.com
**/
public class User implements Serializable {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
第二步:编写spring核心配置文件applicationContext.xml(并且把User注入到bean容器中)
id
属性是标识单个bean定义的字符串。class
属性定义Bean的类型,并使用完全限定的类名。- property属性进行赋值 也是通过Spring容器进行赋值的
- id相当于变量名 class相当于反射创建对象(ClassforName)于是Spring就为我们创建了User对象
- 当我们用的时候我们是从Spring的Bean容器中拿的,这说明我们已经把创建对象和赋值交给spring了也就时控制反转IOC
<?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.xuan.pojo.User">
<property name="name" value="xuan"/>
<property name="age" value="22"/>
</bean>
</beans>
第三步:编写测试类
实例化容器:
- 提供给
ApplicationContext
构造函数的一个或多个位置路径是资源字符串,可让容器从各种外部资源(例如本地文件系统,Java等)中加载配置元数据CLASSPATH
。
使用容器:
- 该
ApplicationContext
是一个维护bean定义以及相互依赖的注册表的高级工厂的接口。通过使用方法T getBean(String name, Class<T> requiredType)
,您可以检索bean的实例。
public class TestUser {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
User user = applicationContext.getBean("user", User.class);
System.out.println(user);
}
}
//测试成功 输出结果为:
User{name='xuan', age=22}
写到这可以聊一聊什么是控制反转?
- 控制? 主要讲的应该是创建对象交由谁(spring)来控制
- 反转? 是一个从主动编程创建对象到被动接受spring创建的对象的一种转化