JavaWeb 之 Spring 快速入门
Spring 快速入门。
Spring 框架的概述和入门
什么是 Spring 框架
Spring 框架的概述
Spring 是一个开放源代码的设计层面框架,他解决的是
业务逻辑层
和其他各层的松耦合问题。Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作 《Expert One-On-One J2EE Development and Design》 中阐述的部分理念和原型衍生而来。
它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
Spring 使用基本的
JavaBean
来完成以前只可能由EJB
完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 的核心是
控制反转(IoC)
和面向切面(AOP)
。简单来说,Spring 是一个分层的JavaSE/EEfull-stack(一站式)
轻量级开源框架。Java EE 开发分成三层结构
WEB层 ———— Spring MVC
业务层 ———— Bean管理:(IoC)
持久层 ———— Spring 的 JDBC 模板。ORM 模板用于整合其他的持久层框架。
Spring 框架的特点
方便解耦,简化开发
Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给 Spring 管理。
AOP 编程的支持
Spring 提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程。
方便程序的测试
Spring 对 Junit4 支持,可以通过注解方便的测试 Spring 程序。
方便集成各种优秀框架
Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持。
降低 JavaEE API 的使用难度
Spring 对 JavaEE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等),都提供了封装,使这些 API 应用难度大大降低。
Spring 框架的 IoC 核心功能快速入门
IoC 的功能
IoC(Inverse of Control),
控制反转
,将对象的创建权反转给 Spring !!使用 IoC 可以解决的程序
耦合性高
的问题!!
IoC 快速入门
步骤一:下载 Spring 框架的开发包
下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring
解压:(Spring 目录结构)
docs
———— API 和开发规范libs
———— jar 包和源码schema
———— 约束
步骤二:创建 JavaWEB 项目,引入 Spring 的开发包
引入Spring框架IoC核心功能需要的具体的jar包
- Spring 框架的 IoC 的功能,那么根据 Spring 框架的体系结构图能看到,只需要引入如下的 jar 包
Beans
Core
Context
Expression Language
Spring 框架也需要引入日志相关的 jar 包
- spring-framework-3.0.2.RELEASE-dependencies/org.apache.commons/com.springsource.org.apache.commons.logging/1.1.1
com.springsource.org.apache.commons.logging-1.1.1.jar
引入 log4j 的jar包
- spring-framework-3.0.2.RELEASE-dependencies\org.apache.log4j\com.springsource.org.apache.log4j\1.2.15
com.springsource.org.apache.log4j-1.2.15.jar
注意:记得在 src 目录下导入 log4j 的属性文件 log4j.properties
步骤三:编写 Java 类
创建对应的包结构,编写 Java 的类。
注意:以后使用 Spring 框架做开发,都需要来编写接口与实现类!!
- com.renkaigis.demo1
UserService ———— 接口
UserServiceImpl ———— 具体的实现类
步骤四:编写配置文件 applicationContext.xml
想把 UserServiceImpl 实现类的创建交给 Spring
框架来管理,需要创建 Spring 框架的配置文件,完成配置。
在 src 目录下创建
applicationContext.xml
的配置文件,名称是可以任意的,但是一般都会使用默认名称!引入 spring 的约束,需要先找到具体的约束头信息!
spring-framework-3.2.0.RELEASE\docs\spring-framework-reference\html\xsd-config.html
具体的约束如下:
1 | <beans xmlns="http://www.springframework.org/schema/beans" |
- 完成 UserService 的配置
1 | <!-- Spring的快速入门 --> |
步骤五:编写测试程序
采用 Spring 框架的 工厂方式
来获取到 UserService 接口的具体实现类!!
1 | package com.renkaigis.demo1; |
Spring 框架中的工厂(了解)
ApplicationContext 接口
使用
ApplicationContext
工厂的接口,使用该接口可以获取到具体的Bean
对象。启动服务器的时候即创建好了对象。
该接口下有两个具体的实现类:
ClassPathXmlApplicationContext————加载
类路径
下的 Spring 配置文件
FileSystemXmlApplicationContext————加载本地磁盘下的 Spring 配置文件
BeanFactory工厂(过时)
(是Spring框架早期的创建Bean对象的工厂接口)
启动服务器的时候不会创建对象,只有在第一次调用的时候才会创建。
使用
BeanFactory
接口也可以获取到 Bean 对象
1 | public void run(){ |
BeanFactory
和 ApplicationContext
的区别
BeanFactory————BeanFactory 采取延迟加载,第一次
1getBean
时才会初始化 BeanApplicationContext————在加载
applicationContext.xml
时候就会创建具体的 Bean 对象的实例,还提供了一些其他的功能:事件传递
Bean 自动装配
各种不同应用层的 Context 实现