第1章 Spring入门
1.1 Spring简介
Spring是一个轻量级Java 开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。
Spring的体系结构图:
Spring的核心容器是其他模块建立的基础,由Spring-core、Spring-beans、Spring-context、Spring-Context-support和Spring-expression(Spring表达式语言)等模块组成。
1.2 Spring的下载及目录结构
Spring官方网站升级后,建议都是通过 Maven和Gradle下载,而不使用Maven和Gradle的开发者,下载Spring就非常麻烦。本书给出一个Spring Framework jar官方直接下载路径:http://repo.springsource.org/libs-release-local/org/springframework/spring/。
1.3 使用Eclipse开发Spring入门程序
1.使用Eclipse创建Web应用并导入JAR包
2. 创建接口TestDao
在src目录下,创建一个dao包,并在dao包中创建接口TestDao,接口中定义一个sayHello()方法,代码如下:
代码语言:javascript复制package dao;
public interface TestDao {
public void sayHello();
}
3. 创建接口TestDao的实现类TestDaoImpl
在包dao下创建TestDao的实现类TestDaoImpl,代码如下:
代码语言:javascript复制package dao;
import org.springframework.stereotype.Service;
@Service
public class TestDaoImpl implements TestDao{
@Override
public void sayHello() {
System.out.println("Hello, Study hard!");
}
}
4.创建配置文件applicationContext.xml
在src目录下,创建Spring的配置文件applicationContext.xml,并在该文件中使用实现类TestDaoImpl创建一个id为test的Bean,代码如下:
代码语言:javascript复制<?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">
<!-- 将指定类TestDaoImpl配置给Spring,让Spring创建其实例 -->
<bean id="test" class="dao.TestDaoImpl" />
</beans>
5.创建测试类
代码语言:javascript复制package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import dao.TestDao;
public class Test {
public static void main(String[] args) {
//初始化Spring容器ApplicationContext,加载配置文件
ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext.xml");
//通过容器获取test实例
TestDao tt = (TestDao)appCon.getBean("test");
tt.sayHello();
}
}
执行完上述main方法后就是打印一句话。其中并没有用new运算符创建TestDaoIml类的对象,而是通过Spring容器来获取实现类对象,这就是Spring IOC的工作机制。