首先创建一个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">
</beans>
在编写一个Hello.class实体类
package com.spring.pojo;
public class Hello {
private String str;
@Override
public String toString() {
return "Hello{" +
"str='" + str + '\'' +
'}';
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
然后我们再啊重新编写beans.xml,在其中加入这段代码
<bean id="hello" class="com.spring.pojo.Hello">
<property name="str" value="spring"/>
</bean>
讲解一下
bean就是一个对象,该 这里的类名就用用class代替,对象名用id代替 property就是属性 name= “str”就是定义了String 类型的 str,他的值是“spring” |
在创建一个测试类Tsetpoji
import com.spring.pojo.Hello;
import com.spring.serivce.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestPoji {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Hello hello = (Hello) context.getBean("hello");
System.out.println(hello.toString());
}
}
其中 ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");是规定格式
Hello hello = (Hello) context.getBean("hello");;这是用到了强制类型转换
输出结果为
其中Hello对象是spring创建的,他的对象的属性也是spring容器创建的,这个过程就叫做控制反转(IOC)。
控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的
反转 : 程序本身不创建对象 , 而变成被动的接收对象
依赖注入 : 就是利用set方法来进行注入的.
IOC是一种编程思想,由主动的编程变成被动的接收
可以通过newClassPathXmlApplicationContext去浏览一下底层源码 .
OK , 到了现在 , 我们彻底不用再程序中去改动了 , 要实现不同的操作 , 只需要在xml配置文件中进行修改 , 所谓的IoC,一句话搞定 : 对象由Spring 来创建 , 管理 , 装配 !