1.3 Spring的入门程序
通过上一小节的学习,相信读者对Spring的核心容器已经有了一个初步的了解。为了帮助读者快速地学习Spring,下面通过一个简单的入门程序来演示Spring框架的使用。
(1)在Eclipse中,创建一个名为chapter01的Web项目,将Spring的4个基础包以及commons-logging的JAR包复制到lib目录中,并发布到类路径下,如图1-4所示。
图1-4 导入JAR包
(2)在src目录下,创建一个com.itheima.ioc包,并在包中创建接口UserDao,然后在接口中定义一个say()方法,如文件1-1所示。
文件1-1 UserDao.java
1 package com.itheima.ioc; 2 public interface UserDao { 3 public void say(); 4 }
(3)在com.itheima.ioc包下,创建UserDao接口的实现类UserDaoImpl,该类需要实现接口中的say()方法,并在方法中编写一条输出语句,如文件1-2所示。
文件1-2 UserDaoImpl.java
1 package com.itheima.ioc; 2 public class UserDaoImpl implements UserDao { 3 public void say() { 4 System.out.println("userDao say hello World ! "); 5 } 6 }
(4)在src目录下,创建Spring的配置文件applicationContext.xml,并在配置文件中创建一个id为userDao的Bean,如文件1-3所示。
文件1-3 applicationContext.xml
1 <? xml version="1.0" encoding="UTF-8"? > 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> 6 <! -- 将指定类配置给Spring,让Spring创建其对象的实例 --> 7 <bean id="userDao" class="com.itheima.ioc.UserDaoImpl" /> 8 </beans>
在文件1-3中,第2~5行代码是Spring的约束配置。该配置信息不需要读者手写,可以在Spring的帮助文档中找到(参见本节中的多学一招)。第7行代码表示在Spring容器中创建一个id为userDao的Bean实例,其中class属性用于指定需要实例化Bean的类。
注意
Spring配置文件的名称可以自定义,通常在实际开发中,都会将配置文件命名为applicationContext.xml(有时也会命名为beans.xml)。
(5)在com.itheima.ioc包下,创建测试类TestIoC,并在类中编写main()方法。在main()方法中,需要初始化Spring容器,并加载配置文件,然后通过Spring容器获取userDao实例(即Java对象),最后调用实例中的say()方法,如文件1-4所示。
文件1-4 TestIoC.java
1 package com.itheima.ioc; 2 import org.springframework.context.ApplicationContext; 3 import 4 org.springframework.context.support.ClassPathXmlApplicationContext; 5 public class TestIoC { 6 public static void main(String[] args) { 7 //1.初始化spring容器,加载配置文件 8 ApplicationContext applicationContext = 9 new ClassPathXmlApplicationContext("applicationContext.xml"); 10 //2.通过容器获取userDao实例 11 UserDao userDao = (UserDao) applicationContext.getBean("userDao"); 12 //3.调用实例中的say()方法 13 userDao.say(); 14 } 15 }
执行程序后,控制台的输出结果如图1-5所示。
图1-5 运行结果
从图1-5可以看出,控制台已成功输出了UserDaoImpl类中的输出语句。在文件1-4的main()方法中,并没有通过new关键字来创建UserDao接口的实现类对象,而是通过Spring容器来获取的实现类对象,这就是Spring IoC容器的工作机制。
多学一招:快速获取配置文件的约束信息
在Spring的配置文件中,包含了很多约束信息,初学者如果自己动手去编写,不但浪费时间,还容易出错。其实,在Spring的帮助文档中,就可以找到这些约束信息,具体的获取方法如下。
打开Spring解压文件夹中的docs目录,在spring-framework-reference文件夹下打开html文件夹,并找到index.html文件,如图1-6所示。
图1-6 Spring的参考文件目录
使用浏览器打开index.html后,在浏览器页面的Overview of Spring Framework下的7.2.1小节Configuration metadata中,即可找到配置文件的约束信息,如图1-7所示。
图1-7 配置文件的约束信息
在图1-7中,标记处的配置信息就是Spring配置文件的约束信息。初学者只需将标注处的信息复制到项目的配置文件中使用即可。此外,由于使用的是Spring 4.3版本,所以还需要在复制后的xsd信息中加入版本号信息,其代码如下所示。
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
学习本书时,建议读者先下载书中所有配套章节的源代码。在学习每一章时,如果涉及配置文件的约束信息,可以将相应章节源代码中的配置文件约束信息复制过来直接使用。