Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)
上QQ阅读APP看书,第一时间看更新

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

学习本书时,建议读者先下载书中所有配套章节的源代码。在学习每一章时,如果涉及配置文件的约束信息,可以将相应章节源代码中的配置文件约束信息复制过来直接使用。