SpringFramework学习之入门篇(一)
一:准备工作
1:安装JDK
JDK可以从 Oracle 的 Java 网站 Java SE Downloads 下载 JDK 的最新版本。你会在下载的文件中找到教你如何安装 JDK 的说明,按照给出的说明安装和配置 JDK 的设置。最后,设置 PATH 和 JAVAHOME 环境变量,引入包含 java 和 javac 的目录,通常分别为 java install dir/bin 和 java install _ dir。
2:安装 Apache Commons Logging API
可以从 http://commons.apache.org/logging/
下载 Apache Commons Logging API 的最新版本。一旦你下载完安装包,并且解压二进制的发行版本到一个方便的位置。例如在 windows 上的 C:\commons-logging-1.1.1 中,或在 Linux/Unix 上的 /usr/local/commons-logging-1.1.1 中。该目录将有如下的 jar 文件和其他支持的文件等。
3:下载IDEA开发工具
下载地址:https://www.jetbrains.com/idea/download/#section=windows
有企业版和社区版本,
生产注册码:http://idea.iteblog.com/ ,输入电脑用户名
Tips:如果使用注册码还报错
解决办法:
一 :找到C:\Windows\System32\drivers\etc下的hosts文件
二:如果你不是Administrator用户,需要修改权限,右击属性->安全->编辑->选择Users->完全控制选允许
三:用记事本打开hosts文件,在最后添加 0.0.0.0 account.jetbrains.com 然后保存
然后再去输入注册码保存就可以了。
4:安装 Spring 框架库
1:选择是要在 Windows 还是在 UNIX 上安装 Spring,然后继续进行下一个步骤,在 Windows 上下载 .zip 文件,在 Unix 上安装则下载 .tz 文件。
从 http://repo.spring.io/release/org/springframework/spring
2:下载最新版本的 Spring 框架的二进制文件,也可以根据自己需求下载其他版本即可。
如下所示。
文件解压结果:
5:单独建资源库(仅参考)
将之前下载的logging 和Spring-Framework的LIB的文件合并并单独新建一个资源库,方便后面新建工程时使用,也可以忽略此步骤,根据个人习惯即可。
二:SpringFramework基础
1: Spring概述
1.1:概述
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。
Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。
1.2:Spring框架的优点
1:Spring 可以使开发人员使用 POJOs 开发企业级的应用程序。只使用 POJOs 的好处是你不需要一个 EJB 容器产品,比如一个应用程序服务器,但是你可以选择使用一个健壮的 servlet 容器,比如 Tomcat 或者一些商业产品。
2:Spring 在一个单元模式中是有组织的。即使包和类的数量非常大,你只要担心你需要的,而其它的就可以忽略了。
3:Spring 不会让你白费力气做重复工作,它真正的利用了一些现有的技术,像ORM 框架、日志框架、JEE、Quartz 和 JDK 计时器,其他视图技术。
4:测试一个用 Spring 编写的应用程序很容易,因为环境相关的代码被移动到这个框架中。此外,通过使用 JavaBean-style POJOs,它在使用依赖注入注入测试数据时变得更容易。
5:Spring 的 web 框架是一个设计良好的 web MVC 框架,它为比如 Structs 或者其他工程上的或者不怎么受欢迎的 web 框架提供了一个很好的供替代的选择。MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。
(1):模型(Model)封装了应用程序数据,通常它们将由POJO类组成。
(2):视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
(3):控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。
6:Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
7:轻量级的IOC容器往往是轻量级的,例如,特别是当与 EJB 容器相比的时候。这有利于在内存和 CPU 资源有限的计算机上开发和部署应用程序。
8:Spring提供了一致的事务管理接口,可向下扩展到(使用一个单一的数据库,例如)本地事务并扩展到全局事务(例如,使用JTA)。
1.3:依赖注入(DI)
Spring 最认同的技术是控制反转的依赖注入(DI)模式。控制反转(IOC)是一个通用的概念,它可以用许多不同的方式去表达,依赖注入仅仅是控制反转的一个具体的例子。
当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能的独立于其他的 Java 类来增加这些类可重用可能性,当进行单元测试时,可以使它们独立于其他类进行测试。依赖注入(或者有时被称为配线)有助于将这些类粘合在一起,并且在同一时间让它们保持独立。
到底什么是依赖注入?让我们将这两个词分开来看一看。这里将依赖关系部分转化为两个类之间的关联。例如,类 A 依赖于类 B。现在,让我们看一看第二部分,注入。所有这一切都意味着类 B 将通过 IOC 被注入到类 A 中。
依赖注入可以以向构造函数传递参数的方式发生,或者通过使用 setter 方法 post-construction。
1.4:面向方面的程序设计(AOP)
Spring 框架的一个关键组件是面向方面的程序设计(AOP)框架。一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。,比如日志记录、声明性事务、安