我的第一个spring程序
第一步:首先通过IDEA创建spring项目,选择骨架quickstart创建,等待项目创建完成。
第二步:在src/main的文件下面新建一个resources文件夹,存放bean的配置文件。并在该文件夹下面创建bean/xml文件;将要放入ioc容器的对象在其中创建出来,比如此处的springDemo对象
<?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">
<!--告诉spring创建对象
声明bean , 就是告诉spring要创建某个类的对象
id:对象的自定义名称,唯一值。 spring通过这个名称找到对象
class:类的全限定名称(不能是接口,因为spring是反射机制创建对象,必须使用类)
spring就完成 SomeService someService = new SomeServiceImpl();
spring是把创建好的对象放入到map中, spring框架有一个map存放对象的。
springMap.put(id的值, 对象);
例如 springMap.put("someService", new SomeServiceImpl());
一个bean标签声明一个对象。
-->
<bean id="springDemo" class="com.pan.service.SpringDemoImpl" />
<!--
spring能创建一个非自定义类的对象吗, 创建一个存在的某个类的对象。
-->
<bean id="mydate" class="java.util.Date" />
</beans>
<!--
spring的配置文件
1.beans : 是根标签,spring把java对象成为bean。
2.spring-beans.xsd 是约束文件,和mybatis指定 dtd是一样的。
-->
第三步:在src/java/main/com/pan/service文件夹中创建接口SpringDemo,同时SpringDemoImpl实现它
SpringDemo.java文件
package com.pan.service;
public interface SpringDemo {
void dosome();
}
SpringDemoImpl.java文件
package com.pan.service;
public class SpringDemoImpl implements SpringDemo {
@Override
public void dosome() {
System.out.println("我的第一个spring程序");
}
}
第四步:创建测试类,利用ioc容器,创建SpringDemo对象,getBean方法中的参数一定要存在于beans.xml文件中声明的bean的id中。
@Test
public void springDemo(){
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
//从容器中获取某个对象, 你要调用对象的方法
//getBean("配置文件中的bean的id值")
SpringDemo service = (SpringDemo) ac.getBean("springDemo");
//使用spring创建好的对象
service.dosome();
}