Java框架之spring(一)


小伙伴们

我们要学习框架

准备好了吗?

那我们开始了

MVC


M (model) 模型 是应用程序中用于处理程序数据逻辑的部分。(jdbc,hibernate,mybatis,spring-JdbcTemplate)通常模型对象负责在数据库中存储数据。


C (controller) 控制器 是应用程序中处理用户交互的部分(servlet, Struts1, Struts2, springMVC)通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。


V (view) 视图 是应用程序中处理数据显示的部分(HTML, jsp, freemarker, velocity) 视图是依据模型数据创建的


其实在 MVC 概念形成之前还经历了两种模型,我们称之为:

model1 (jsp+javabean) 纯jsp开发模式

将视图层和控制层混在一起,但将模型层脱离出来,这也是为什么在 jsp 中有那么多的其他标签的原因。


model2 (jsp+servlet+javabean) 简单的MVC模式

jsp 主要是用于视图层 servlet 用于控制层 javabean 用于模型层。


了解玩这些历史之后,有助于你们和那些工作年限久一点的程序员交流呦!

Spring


Spring 是一个轻量级的控制反转 (IOC) 和面向切面 (AOP) 的容器框架


控制反转 IOC  (inversion of controller)

IOC 是一种概念,是把我们程序中类与类之间的依赖关系交给容器去处理,一般有两种方式


依赖查找 DL (dependency lookup)

程序提供查找方式,交给容器去查找(回调函数)


依赖注入DI (dependency injection)

程序不提供查找方式,提供合适的构造方法或者setter方法,让容器进行注入来解决依赖关系


spring的控制反转就是通过依赖注入来实现 


我们来做一个例子


新建一个 Java 工程,按照分层开发的模式,先来创建三个包 action 控制器层service业务逻辑层 和 DAO数据层


Java框架之spring(一)_第1张图片



先来写一个DAO接口。


Java框架之spring(一)_第2张图片


写一个类实现这个接口


Java框架之spring(一)_第3张图片


这个地方应该写调用数据的方法的,我们直接返回 true 表示我们利用 jdbc 通过了数据库的验证!



前端页面获取到 用户名和密码 会传到 action 层,然后 action 层来调用service 层,service 层在来调用 DAO 层操作数据库。现在DAO 层写完了,再来写 service 层。为了方便我们就假设从 action 拿到的用户名和密码都是aaa。


Java框架之spring(一)_第4张图片


这边引入一个概念—依赖:简单的说,一个类实现某个功能需要依靠另外一个类的帮助来实现,就像 UserService 必须依赖于 Dao 方法才能实现功能


现在假设我们不想用 jdbc ,想用其他的方法了!( 如hibernate,mybatis) 我们该怎么办?创建一个other实现方法来实现我们的接口


Java框架之spring(一)_第5张图片


修改一下我们的代码


Java框架之spring(一)_第6张图片


虽然修改代码是可以实我们的想法,但是并不是很好。当一个方法有多个实现的情况下,我们一般是基于接口的方式进行编程


演示一下


利用构造方法来实现这个操作


Java框架之spring(一)_第7张图片


Java框架之spring(一)_第8张图片


这下看起来是好一点了,但是还是有一个问题呀!!每换一次方法都要改一下代码。现在只是一个小功能,还好一点。以后功能多了呢!改代码都要改半个月!


进入 spring


spring 的下载地址:http://repo.spring.io/release/org/springframework/spring/


Spring 的 IOC 容器通过依赖注入来实现程序之间的依赖关系,达到解耦的作用

依赖注入是指一个对象需要另外一个对象时,无需在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。


spring项目环境搭建需要的jar包

spring-beans-4.2.1.RELEASE.jar

spring-context-4.2.1.RELEASE.jar

spring-core-4.2.1.RELEASE.jar

spring-expression-4.2.1.RELEASE.jar


Java框架之spring(一)_第9张图片

剩下几个是 log4j 和 JUnit 的包


配置文件 applicationContext.xml,加上 bean 约束 

bean 的约束在 spring-framework-4.2.1.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html 文件查看


Java框架之spring(一)_第10张图片


Java框架之spring(一)_第11张图片

在配置文件中定义我们的类


Java框架之spring(一)_第12张图片


在 spring 实现依赖注入有两种方式


通过构造方法的方式注入:

被依赖的类必须有构造方法

在配置文件里面来描述依赖关系


Java框架之spring(一)_第13张图片


测试一下


Java框架之spring(一)_第14张图片


想用其他的方法的时候,就把上面的注掉,就像下面这样


Java框架之spring(一)_第15张图片


我们测试一下


Java框架之spring(一)_第16张图片


通过 setter 方法注入

被依赖的类里面生成依赖类的setter方法


Java框架之spring(一)_第17张图片


在配置文件来描述依赖关系


Java框架之spring(一)_第18张图片


Java框架之spring(一)_第19张图片


换一下


Java框架之spring(一)_第20张图片


Java框架之spring(一)_第21张图片


今天的 spring 就先写到这里

再见了

拜拜!

Java框架之spring(一)_第22张图片


你可能感兴趣的:(Java框架之spring(一))