Spring总结
此君也是使用过多时了,却从来没有系统的总结过
以下,弥补,盼不晚:
Spring为什么是框架&容器
1、框架的原因:
其提供多个组件的搭建,和支持其他事务事件,符合框架定义
ps:什么是框架呢?
我认为可以类比为 一个初搭建好的“框架楼”(只有钢筋搭建的雏形),已经可以看出其模型是一栋楼,只是本没有砌砖,完善等
pps:框架与类库
若框架可以类比为 “框架楼”,那么类库可以类比为 “建材”
一个是已经成型,一个是仍然有其他可能
2、容器的原因:
其有个官方定义图,可以去找一下,这里就不贴了:
她提供jdbc事件、web、AOP以及web container等,并决定其生命周期
Spring的主要内容:
1、IOC(inversion of control):控制反转
2、beans:组件
3、AOP(aspect object program):面向切面编程
四个核心容器:
- core
- context
- SPEL
- beans
IOC
IOC的实现方式叫DI(dependency injection)
其实现了什么反转:
反转了依赖注入的过程:
列如,我们要吃一碗蛋炒饭:
1、自己做
2、饭店买
**2就是实现了此过程,我们想要得到某个东西,原始方法是自己去生产,但每个自己想要的都去自己做,并不现实。
所以,我们想要吃蛋炒饭,那么我们自己去饭店就好了(调用IOC容器),然后得到我们想要的(DI实现)**
webBean容器加载有两种方法:
1、listener(springframework中的)
2、Servlet(springframework中的)
applicationcontext有两种实现方式:
1、classpathxml^实现
2、filesystem^文件实现
注入方式两种:
1、构造注入
2、设值注入
ps:小细节:设值注入的必要条件是有一个无参构造和一个set方法
bean装配
bean的作用域
1、singleton:每个bean容器中只存在一份(默认)
2、request:每次http请求创建一个实例,且在请求中有效
3、session:同上,只是范围变为:session
4、prototype:每次使用(请求)创建一个实例, destroy无效
5、global session:基于portlet在web中有效
bean的生命周期
Spring总结的更多相关文章
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- 玩转spring boot——快速开始
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...
- Spring基于AOP的事务管理
Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...
- [Spring]IoC容器之进击的注解
先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...
- 学习AOP之透过Spring的Ioc理解Advisor
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...
- 学习AOP之深入一点Spring Aop
上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...
- 学习AOP之认识一下Spring AOP
心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- Spring之旅(2)
Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...
- Spring之旅
Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...
随机推荐
- VB.NET中的除法运算符 与 C#中的除法运算符
VB.NET中的除法运算符有两个:/(浮点除法).\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分. 关于VB.NE ...
- JMeter进行简单的数据库(mysql)压力测试
1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于: \java\jre\lib\ext 文件为:mysql-connect ...
- Bilinear Filter
参考资料: 1. 维基百科Biliner Filtering 2. 维基百科Texture Filtering 3.维基百科Bilinear Interpolation 4. 维基百科Bilinear ...
- 监控 Linux Unix Solaris AIX, swap page in / swap page out
vmstat 的 pi/po si/so --监控一天 vmstat 5 17280> vmstat.txt sar -W 1.得到数据 (linux 的 /var/log/sar/saX 自带 ...
- h.SSL协议栈整体分解
1.SSL整体框图 SSL协议是应用层次(http协议)和TCP层级的一个可选的位置,可以从下面的图中非常清楚看到该层次: 绿色的框图就是这个SSL./TLS的位置,最右面的SSL/TLS图可以进一步 ...
- python核心编程第六章练习6-11
6-11.转换.(a)创建一个从整型到IP地址的转换,如下格式:www.xxx.yyy.zzz.(b)更新你的程序,使之可以逆转换.[答案](a)代码如下: Input_number = abs(in ...
- Install PaddlePaddle (Parallel Distributed Deep Learning)
Step 1: Install docker on your linux system (My linux is fedora) https://docs.docker.com/engine/inst ...
- 读<jquery 权威指南>[2]-事件
1. 事件冒泡 阻止事件冒泡的两种方式: event.stopPropagation(); return false ; 2. 绑定事件——bind(type,[data],function) ty ...
- linux 下mysql 字段插入的值超过 预设大小报错
其原因 是 STRICT_TRANS_TABLES 决定了 如果超出字段大小,则不会截取 ,直接报错. 到/etc/my.cnf 删除 STRICT_TRANS_TABLES 就可以了 sq ...
- 为什么高手离不了Linux系统?这就是我的理由
摘要: 通过本文来记录下我在Linux系统的学习经历,聊聊我为什么离不了Linuxx系统,同时也为那些想要尝试Linux而又有所顾忌的用户答疑解惑,下面将为你介绍我所喜欢的Linux系统,这里有一些你 ...