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