1、spring概述
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。
Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。
更多教程请访问码农之家
2、Spring 体系结构
Core Container 核心容器
- 容器是Spring的核心部分,Core Container 模块是Spring框架的基础,所有模块都构建于核心模块之上。
- Beans : Beans模块是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Depen-dency Injection(IoC/DI)操作相关的所有类。
- Core : Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件要都要使用到这个包里的类,Core模块是其他组件的基本核心。当然你也可以在自己的应用系统中使用这些工具类。
- Context : Spring的上下文即IoC容器,通过上下文可以获得容器中的Bean。 ApplicationContext接口是Context模块的关键。 Context模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。 SpEl : Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操纵对象。
3、入门案列
- 新建 java 项目,并添加 lib 文件夹,用于存放 spring 框架必要的 jar 包
核心容器四个包
- spring-beans-4.2.9.RELEASE.jar
- spring-context-4.2.9.RELEASE.jar
- spring-core-4.2.9.RELEASE.jar
- spring-expression-4.2.9.RELEASE.jar
核心容器依赖的日志包
- com.springsource.org.apache.commons.logging-1.1.1.jar
- com.springsource.org.apache.log4j-1.2.15.jar
commons-logging相当于一个日志接口,log4j相当于该接口的实现,如果不添加log4j包也可以,因为commons-logging也有一个简单的实现会自动使用。
- 将spring必要的几个 jar 包复制到 lib 文件下,添加 Spring 框架和通用的日志 API 库到我们的项目中。选中 lib 中的所有 jar 文件,右键 Build Path -> Add to Build Path
- 在 src 下新建 pojo包并在该包下创建 User类,添加 hello方法
4. 在 src 下 创建 application.xml,配置 bean
<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.2.xsd">
<!-- 把创建对象的权利交给spring容器来管理 -->
<bean id="user" class="pojo.User"></bean>
</beans>
- 在 src 下新建 test 包并在该包下创建 Test类,添加 main方法,运行结果
package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pojo.User;
public class Test {
public static void main(String[] args) {
//该容器从 XML 文件中加载已被定义的 bean
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("classpath:application.xml");
//通过getBean方法从application.xml文件中获取User对象
User user=(User)applicationContext.getBean("user");
user.hello();
}
}