编写第一个Spring程序
Axe.java
package org.crazyit.app.service;public class Axe{ public String chop() { return "使用斧头砍柴"; }}
Person.java
package org.crazyit.app.service;public class Person{ private Axe axe; // 设值注入所需的setter方法 public void setAxe(Axe axe) { this.axe = axe; } public void useAxe() { System.out.println("我打算去砍点柴火!"); // 调用axe的chop()方法, // 表明Person对象依赖于axe对象 System.out.println(axe.chop()); }}
BeanTest,java
package lee;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.crazyit.app.service.*;public class BeanTest{ public static void main(String[] args)throws Exception { // 创建Spring容器 ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); // 获取id为person的Bean Person p = ctx.getBean("person" , Person.class); // 调用useAxe()方法 p.useAxe(); }}
说明:
ApplicationContext 的主要实现类是:ClassPathXmlApplicationContext和FileSystemXmlApplicationContext;
前者默认从类路径加载配置文件,后者默认从文件系统加载配置文件。
当含有多个配置文件时,可以通过下面的代码进行加载:
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans1.xml","beans2.xml","beans3.xml"});
beans.xml
version="1.0" encoding="GBK"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean id="person" class="org.crazyit.app.service.Person"> <property name="axe" ref="axe"/> bean> <bean id="axe" class="org.crazyit.app.service.Axe"/> <bean id="win" class="javax.swing.JFrame"/> <bean id="date" class="java.util.Date"/>beans>
运行:
运行结果: