Spring框架初写
1.Spring的概述
a) Spring是什么
Spring是一个JavaEE轻量级的一站式 Java EE的开发框架。
JavaEE: 就是用于开发B/S的程序。(企业级)
轻量级:使用最少代码启动框架,然后根据你的需求选择,选择你喜欢的模块使用。
一站式:提供了表示层,服务层,持久层的所有支持。
b) Spring框架出现的背景
在世界第一套有Java官方Sun公司推出的企业级开发框架EJB出现后,瞬间风靡全球。被各大公司所应用,但由于其重量级等特性引起了Spring之父Rod Jonhson的不满,于是他就提供了一个他的解决方案:轻量级的一站式企业开发框架
如图:

c) Spring框架的作用
由上述章节描述可知,Spring是一个JavaEE一站式的开发框架,意味着,使用了Spring框架就可以满足整个javaEE的开发需求。
除此以外,Spring框架的轻量级更是其重要的特性,即除了内核模块以外,它能够整合任何的第三方框架。
即开发过程中,Spring框架的主要作用是用于框架的整合
2.Spring框架包
a) 框架包的下载

b) 目录说明
根目录

libs

l 第一个为二进制码包
l 第二个为文档包
l 第三个为源码包
3.配置流程
如图:

a) Spring两个容器的实现

ClassPathXmlApplicationContext:通过classpath路径直接获得加载的xml文件(推荐使用)
FileSystemXmlApplicationContext:通过文件路径来获得加载的xml文件。
4.Ioc(控制反转)
Spring号称是一个可以实现模块可插拔(轻量级)的JavaEE开发框架
实现程序可以插拔的核心理念就是,控制反转(Inversion of Control,英文缩写为IoC)
所谓的控制反转,就是将代码的调用权(控制权)从调用方转移给被调用方(服务提供方)。
a) 传统强耦合方式
将A调用B的对象修改为C类的对象,修改的是调用方的代码,所以我们认为代码的调用权在调用方。

b) 基于Ioc的调用方式
将A类调用B类的对象修改为C类的对象,修改的是被调用方的配置文件的代码,所以代码的调用权转移到了被调用方。通过控制反转,我们可以实现增加模块或者移除模块统一由配置文件关联,增加或者移除模块,配置XML配置文件即可
我们将代码的调用权(控制权)从调用方转移给被调用方(服务提供方)的设计模式称为控制反转(IoC)

根据上图可以的得出:
1.被调用方(服务方),在程序启动时就要根据配置文件类与类的关系创建好对象,放在一个容器里面。
2.调用方使用一个接口或类的引用(不用使用new),就可以创建获得对象。
我们将这种不用new,而是根据接口或者类的引用就可以从被调用的容器里获得创建的对象的方式称为依赖注入。
所以,控制反转(Ioc)=就是依赖注入加上面向接口的编程思想的实现。
5.基于Spring框架实现Ioc控制反转
示例代码
a) Service层接口

b) 接口的实现类
1.实现类1

2.实现类2

c) 调用方

d) 配置文件

e) 测试类

f) 测试结果

Spring框架初写的更多相关文章
- 仿hibernate,spring框架手动写
近期学习了hibernate底层技术和spring 的底层技术,认为非常不错,所以想分享下,要是说的不够具体.能够去下载资源自己查看下载链接 技术的体现是在实际中的.如今大体介绍一下吧 首先介绍hib ...
- 自己动手写Spring框架--IOC、MVC
对于一名Java开发人员,我相信没有人不知道 Spring 框架,而且也能够轻松就说出 Spring 的特性-- IOC.MVC.AOP.ORM(batis). 下面我想简单介绍一下我写的轻量级的 S ...
- 手写Spring框架,加深对Spring工作机制的理解!
在我们的日常工作中,经常会用到Spring.Spring Boot.Spring Cloud.Struts.Mybatis.Hibernate等开源框架,有了这些框架的诞生,平时的开发工作量也是变得越 ...
- Summer——从头开始写一个简易的Spring框架
Summer--从头开始写一个简易的Spring框架 参考Spring框架实现一个简易类似的Java框架.计划陆续实现IOC.AOP.以及数据访问模块和事务控制模块. ...
- 手写Spring框架,是时候撸个AOP与Bean生命周期融合了!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 嘎小子,这片代码水太深你把握不住! 在电视剧<楚汉传奇>中有这么一段刘邦 ...
- 如何在spring框架中解决多数据源的问题
在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库.我们以往在spring和hibernate框架中总是配置一个数据源,因而sessi ...
- Spring框架概述
Spring是最流行的Java企业级应用开发框架,全球数以百万的开发者在使用Spring框架创建高性能.易测试.可重用的代码. Spring框架的核心特性可以应用于任何Java应用,但扩展的JavaE ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- spring框架学习(三)
一.Spring自动组件扫描 Spring 提供组件扫描(component scanning)功能.它能从指定的classpath里自动扫描.侦测和实例化具有特定注解的组件. 基本的注解是@Comp ...
随机推荐
- spring aop记录用户的操作
1.命名空间 xmlns:aop="http://www.springframework.org/schema/aop" http://www.springframework.or ...
- C++ 类 & 对象-C++ 内联函数-C++ this 指针-C++ 类的静态成员
C++ 内联函数 C++ 内联函数是通常与类一起使用.如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方. 对内联函数进行任何修改,都需要重新编译函数的所有客户端 ...
- CocoaPods:library not found for -lPods
This is my first shot to write a blog in English. Enjoy! ;) CocoaPods is a popular way to control iO ...
- (巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1846 首先来玩个游戏,引用杭电课件上的: (1) 玩家:2人:(2) 道具:23张扑克牌:(3) 规则: ...
- Mac提示App已损坏 你应该将它移到废纸篓的解决方案
现象 "Elmedia Player.app"已损坏,打不开. 您应该将它移到废纸篓. 原因 很多朋友们在安装软件时Mac OS系统出现提示"XXXApp 已损坏&quo ...
- 使用Object.create()实现继承
一.常见继承方式 我们日常开发中常见的继承方式主要有: 1.默认模式: Child.prototype = new Parent(); 2.借用构造函数: function Child(a, b, c ...
- Selenium框架切换-----Selenium快速入门(七)
上一篇说了窗口的切换,本篇说说框架的切换. 切换框架:是指切换html中的iframe标签元素或者frame标签元素,注意,并不包括frameset 以下是常用的方法: 方法 说明 WebDriver ...
- 初学Ionic
官网 https://ionicframework.com/ 如连接所示,可跳转到该前端框架的官网,在这里提供了两种方式可供大家学习: Code with the CLI Design with lo ...
- textarea 高度自动
<textarea id="suggest" type="text" name="suggest" class="form- ...
- 7-Linq查询语言
本篇博客对应视频讲解 回顾 上一期我们讲解了字符编码相关的内容,大家应该去理解字符和字节之间的关系.并学习使用Encoding类进行编码之间的转换. 今天给大家讲的内容十分的重要,也是C#等语言比其他 ...