spring技术小结
1.DI和IOC
依赖注入(Dependency Injection)还是控制反转(Inversion of Conctrol)
bean通过依赖注入,注册到spring容器里面。spring容器通过控制反转,调用bean。
2.DI的方法
这里网上很多配置注入,构造方法注入,类参数注入,get/set注入等等,一点总结能力都没有啊。
其实就两种,配置注入和方法注入。java8支持多注解(annotations)之后,方法注入多了灵活的注解注入。
3.bean的作用域
singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的bean将只有一个实例;
prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新实例;
request:每次HTTP请求中,使用request定义的bean都将产生一个新实例,只有在web应用程序使用Spring时,该作用域才有效;
session:每次HTTP请求中,使用session定义的bean都将产生一个新实例,只有在web应用程序使用Spring时,该作用域才有效;
global session:和session类似,但是只适用于portlet(另一个mvc框架),若在springmvc里面就是session的效果。
4.获取spring容器
通过上面说的request,session之类的xxxxContext向上获取spring容器(ApplicationContext);
或者直接实现ApplicationContextAware接口
或者直接通过配置获取
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
PS.都不建议获取spring容器,因为提高了耦合,污染了代码。
并且通过配置获取,会将初始化所有Bean实例。
5.spring的装配
@Autowire 自动装配。
@Qualifier 精确装配。
spring技术小结的更多相关文章
- CURL使用HTTPS的技术小结
摘自http://www.51testing.com/html/14/175414-248202.html CURL使用HTTPS的技术小结 cURL是linux下命令行提交HTTP(S)请求的一个很 ...
- Spring技术内幕:设计理念和整体架构概述(转)
程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决. 一方面,他们有深厚的技术基础,对应用的技术知其所以然,另一方面,在采坑的过程中不断 ...
- Canvas:技术小结
Canvas:技术小结 资料 [教程:MDN官方中文教程] https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial [ ...
- 《spring技术内幕》读书笔记(1)——什么是POJO模式
今天在看<spring技术内幕>,第一章中多次提到了使用POJO来完成开发,就百度了一下,在此保留 1. 什么是POJO POJO的名称有多种,pure old java obje ...
- Spring技术内幕:SpringIOC原理学习总结
前一段时候我把Spring技术内幕的关于IOC原理一章看完,感觉代码太多,不好掌握,我特意又各方搜集了一些关于IOC原理的资料,特加深一下印象,以便真正掌握IOC的原理. IOC的思想是:Spring ...
- 前端html、Javascript、CSS技术小结
简单地总结了一下前端用过的html.javascript.css技术,算是清点一下,做个大略的小结,为进一步的学习给个纲领. 一.HTML 由于HTML5的兴起,简单地判断一个网页是否是html5网页 ...
- [转] EJB 3和Spring技术体系比较
最近在学习EJB 3,对于SSH与EJB3,一直不太明白“即生瑜,何生亮?”,今天无意看到一篇旧文,比较系统的对比了这二种技术架构,转载于此: 原文出处:http://www.51cto.com/sp ...
- Spring AOP小结
一. AOP介绍 AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP ...
- Spring IoC小结
一. IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...
随机推荐
- QTP使用outlook发送邮件
'发邮件 Dim objOutlook Dim objOutlookMsg Dim olMailItem ' Create the Outlook object and the new mail ...
- TortoiseSVN 日常操作指南
TortoiseSVN A Subversion client for Windows Stefan Küng Lübbe Onken Simon Large 2005/01/17 19:09:21 ...
- JSP注释
------------------siwuxie095 在 JSP 文件中可以使用 HTML 注释 HTML 注释使用 < ...
- how to download a file with Nodejs(without using third-party libraries)用node下载文件
创建HTTP GET请求并将其管理response到可写文件流中: var http = require('http'); var fs = require('fs'); var file = fs. ...
- AngularJs(Part 7)--Build-in Directives
Directives In AngularJS, we can use a variety of naming conventions to reference directives . In the ...
- 嵌入式linux环境搭建
花了两天时间,终于搭建好了板子上的linux驱动开发环境,不容易呀,做个笔记. 首先搭建PC上的编译环境,因为编译的驱动是在板子上运行的,第一步当然需要安装交叉编译器,即arm-none-linux- ...
- php获取request_uri
urlParameters = http_build_query( filter_input_array( INPUT_GET, FILTER_SANITIZE_URL ) ); $_request_ ...
- STL特性总述——写在前面
所谓的容器,见名知意,容纳其他数据的"器具": 特点 1)支持泛型: 2)保存副本:本质上传入对象的拷贝. 3)内存托管 :构建对象于堆,无需人工干预,自动管理内存的生存周期. S ...
- Boost Python学习笔记(五)
你将学到什么 在C++中调用Python代码时的返回值问题 基础类型 修改Python脚本(build/zoo.py) def rint(): return 2 def rstr(): return ...
- Codeforces Beta Round #71 C【KMP+DP】
Codeforces79C 题意: 求s串的最大子串不包含任意b串: 思路: dp[i]为以i为起点的子串的最长延长距离. 我们可以想到一种情况就是这个 i 是某个子串的起点,子串的长度-1就是最短, ...