- 浏览: 2469895 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
spring是平时工作中用的最多的一个框架了, 一些基本的东西基本上是人人都会, 一时想不起来查查参考手册也可以马上"精通". <spring技术手册>可以用来入门, 也可以用来查缺补漏, 今天信手翻来, 学到了一些新知, 也算巩固了以前的内容. 作者貌似花了很大的篇幅在讲解spring mvc, 这块儿基本上工作中没有用到. 前面讲的aop算是一个比较全的东东, 比参考手册要细致些, 值得一看.
一个bean从建立到销毁的过程:
由BeanFactory读取bean配置文件, 并生成bean实例
执行相关的bean属性依赖注入
如果bean类有实现BeanNameAware接口, 则执行它的setBeanName()方法
如果bean类有实现BeanFactoryAware接口, 则执行它的setBeanFactory()方法
如果是ApplicationContext管理的bean, 且实现了ApplicationContextAware接口, 会执行setApplicationContext()方法
如果任何的BeanPostProcessor实例与Bean实例关联, 则执行其postProcessBeforeInitialization()方法
如果Bean类实现了InitializingBean接口, 则执行它的afterPropertiesSet()方法
如果bean定义中指定了init-method方法, 则执行之
执行BeanPostProcessor的postProcessAfterInitialization()方法, 如果有的话
如果bean实现了DisposableBean接口, 则执行destory()方法
如果bean定义指定了destroy-method放, 执行之
ApplicationContext相对于BeanFactory提供了更多的功能:资源获取, 消息解析, 事件处理和传播
ApplicationContext继承了ResourceLoader接口, 可以使用getResource方法指定资源文件的url来取得一个实现了Resource接口的实例.比如:
Resource resource = context.getResource("classpath:admin.properties");
classpath是spring自制的url虚拟协议, 得到的是一个ClassPathResource实例, 在取得一个resource接口实例之后, 可以使用getFile, getInputStream方法来获取资源文件的相关资源, Resource只是资源文件的一个抽象, 可以通过exists()来检测资源文件是否存在.
动态代理
动态代理中的代理对象可以适应任何被代理对象, 这也是其之所以为"动态"的原因. java的动态代理, 只需要创建一个handler就可以服务各种对象, 但是有一点就是这个handler必须实现InvocationHandler接口. 在该接口的bind()方法中, 通过Proxy.newProxyInstance()创建一个代理对象, 建立代理对象时必须告知所代理的接口, 之后可以在invoke方法中对该代理对象进行操作.
AOP中的aspect所指的是类似log这样的行为, 可以将这些行为设计为通用的, 不介入特定业务对象的一个职责清楚的Aspect对象, 这就是Aspect-oriented programming.
一些概念
Aspect: 将散落在各个业务对象之中的cross-cutting concerns收集起来, 设计为可重用的对象, 这些对象就是Aspect.
Advice:Aspect的具体实现称之为Advice, 比如log功能的代码实现.
Joinpoint:Aspect在应用程序执行时加入业务流程的点或时机称之为Joinpoint. 具体的说就是Advice在应用程序中执行的时机.
Poincut: 它是一个定义, 根据这个定义, 可以指定某个Aspcet在哪些Joinpoint时被植入应用程序中, 换句话说就是用一个配置来定义Aspect在应用中的Joinpoint. 可以理解一种定义advice在具体的Joinpoint被植入表达式.
Target: 一个Aspect被应用的目标对象
Introduction: 给对象增加行为而不是修改行为就称之为Introduction. 可以当成一种Adpeter
Proxy: 用来完成将Adivce植入Target的对象就是Proxy, 也是我们真正要使用的对象
PointcutAdvisor类用来将Pointcut和Advice结合为一个对象
Pointcut类定义了根据类名和方法名来定义来决定是否使用Advice.
ControlFlowPointcut用来在方法的执行堆栈中, 某个指定类的某方法中, 植入advice. 也就是在运行期提供动态的Pointcut功能.
比如这样的配置:
<bean id = "pointcut" class= "...ControlFlowPointcut"> <constructor-arg><value>...Foo</value></constructor-arg> </bean> <bean id = "advisor" class="..PointcutAdvisor"> <property name="advice" value="log"/> <property name="pointcut" value="pointcut"/> </bean> <bean id = "bar" class = "...Bar"/> <bean id = "proxyBar" class = "...ProxyFactoryBean"> <property name = "proxyInterfaces">..</property> <property name = "target">bar</property> <property name = "interceptorName">advisor</property> </bean>
这个配置的意思在Foo的调用堆栈中调用了Bar的方法时, 则执行log动作.
AutoProxyCreator 可以自动来创建代理对象, 这样对target对象的调用自动跳到对代理对象的调用, BeanNameAutoProxyCreator就是Spring提供的常用自动代理对象创建器之一
spring的命名也是值得学习的, 比如匹配的方法名matches, 组合类会带前缀Composable, 采用模板模式的类都有Template后缀.
发表评论
-
<异类>读书笔记
2013-03-06 07:54 0成功者能够获得更多的机会,从而能变得更为成功。税收愈减免,富人 ... -
《python学习手册》学习笔记
2013-03-11 22:25 3469python格式化传参数非常赞,用数字标明位置,值得java学 ... -
<万历十五年>读书笔记
2013-03-11 22:27 1595在网上下了一个电子书, 但是貌似跟万历十五年没啥关系, 都是讨 ... -
《鸟哥的linux私房菜》读书笔记(部分)
2013-03-11 22:27 2066x86是一种微机系统硬件架构,另一种是苹果的mac的架构 l ... -
《你的灯亮了吗》读书笔记
2013-03-06 07:20 1509这是一本原本写给程序员的书 本书的四个问题: 搞清问题的来源 ... -
《小狗钱钱》读书笔记
2013-03-06 07:17 1479一本非常不错的理财学习入门书, 以童话的形式, 儿童的思维方式 ... -
《我的奋斗》读书笔记
2012-04-14 22:03 2062文字写的很幽默, 故事也基本都是一些平常人的故事,看到了一个特 ... -
《Java Performance》书评
2012-01-15 18:32 2963原文: http://java.dzone.com/rev ... -
《程序员应该知道的97件事》读书笔记
2012-01-15 18:36 2387一本关于写代码的文 ... -
《影响力》读书笔记
2011-11-05 14:47 1834从书名上很可能以为 ... -
《浪潮之巅》读书笔记
2011-11-05 14:44 1373作为一个中国人通过分析硅谷高科技公司的一系列传奇, 总结出这 ... -
《黑客与画家》读书笔记
2011-11-05 13:37 1820以前看过《rework》, 觉得是每一个小型创业公司的创业宝 ... -
《乔布斯传》读书笔记
2011-10-18 08:53 2848在ipad上看完了这本书, 写的还不错, 里面没有无聊的八 ... -
《细说Java》读书笔记
2011-10-05 15:01 1994国人写的, 感觉是一 ... -
《敏捷估计与规划》读书笔记
2011-10-05 12:08 3178这本书断断续续看了很长时间, 内容非常不错, 基本涵盖了sc ... -
《怪诞心理学》读书笔记
2011-10-05 09:44 1823既然是怪诞, 那么整本书涉及的内容并不是我们平常司空见怪的一 ... -
《番茄工作法图解》读书笔记
2011-09-28 09:02 2390番茄工作法是时间管 ... -
《Java开发超级工具集》读书笔记
2011-09-28 08:59 2099"工欲善其事必先利其器", 在平时的开发 ... -
《敏捷迭代开发管理者指南》读书笔记
2011-09-24 13:09 2217这是一本关于迭代开发 ... -
《解析极限编程》读书笔记
2011-09-24 13:03 1788不知道是kent beck的语 ...
相关推荐
标题中的"Spring学习笔记之一“why spring”"表明了这篇笔记主要探讨的是Spring框架的核心价值和使用背景。在IT行业中,Spring是一个广泛使用的Java企业级应用开发框架,它以其依赖注入(Dependency Injection,DI)...
他的著作还包括《Spring 技术手册》,并且他作为SUN官方教材的主要编写成员之一,其专业性和权威性不言而喻。 在《JAVA 学习笔记》中,良葛格深入浅出地讲解了Java编程语言的基础知识和进阶技巧,旨在帮助读者从零...
著作:《JAVA 学习笔记》、《Spring 技术手册》,为SUN官方教材主要编写成员之一 博客: http://blog.csdn.net/caterpillar_here 详细信息: http://www.china-pub.com/computers/common/info.asp?id=31664
Java JDK 5.0学习笔记 1至6章及附录A和附录B 包含java特性、java学习方法、网络资源...著作:《JAVA 学习笔记》、《Spring 技术手册》,为SUN官方教材主要编写成员之一 博客: http://blog.csdn.net/caterpillar_here
本人资源全部免费,更多资源请查看我的上传资源 ==========================... 著作:《Java JDK 5.0学习笔记》、《Java SE 6技术手册》、《Spring技术手册》等 译作:《Ajax实战手册》、《jQuery实战手册(第2版)》
### JavaWeb 学习笔记知识点总结 #### Spring Boot 和 Spring MVC 的区别 1. **Spring MVC**: - **定位**:Spring MVC 是 Spring 框架中的一个重要组成部分,主要用于构建 Web 应用程序。 - **作用**:提供了一...
很多方法! 特别适合初学者 JAVA . 作者:林信良(网络化名良葛格) 学历:台湾大学电机工程学系 经历:SUN教育训练中心讲师 著作:《JAVA 学习笔记》、《Spring 技术手册》,为SUN官方教材主要编写成员之一
《Spring2开发手册》是一本...同时,手册中的学习笔记部分可能会包含作者在学习过程中遇到的问题、解决方案和经验总结,这些都将对你的学习大有裨益。记得在学习过程中结合实际案例进行实践,以加深理解并提升技能。
目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................
Spring学习笔记...............345 第一章 Spring概述..........................345 第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问.............
学习java非常好的书,作者:林信良(网络化名良葛格) 学历:台湾大学电机工程学系 ...著作:《JAVA 学习笔记》、《Spring 技术手册》,为SUN官方教材主要编写成员之一 博客: http://blog.csdn.net/caterpillar_here
著作:《java jdk 5.0学习笔记》、《java se 6技术手册》、《spring技术手册》等 译作:《ajax实战手册》、《jquery实战手册(第2版)》 个人网站:http://openhome.cc 目录 《java jdk 7学习笔记》 chapter1 ...
这份"java学习笔记(学习java的好书)"的PDF文档,显然是一个全面学习Java编程的资源,旨在帮助初学者和经验丰富的开发者深入理解Java的核心概念和技术。W3School离线完全版的加入,意味着这份资料还可能涵盖了Web开发...
作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、Unix基础知识....7 三、...
林信良,毕业于台湾大学电机工程学系,有着丰富的教学经验,曾担任SUN教育训练中心的讲师,并参与了SUN官方教材的编写工作,包括《JAVA 学习笔记》和《Spring 技术手册》等著作。这份学习笔记主要针对Java JDK 5.0这...
学习笔记可能是一位有经验的开发者或学习者记录下的心得和体会,包含了他们在研究jbpm过程中遇到的问题、解决方案,以及一些实用的技巧和建议。这些笔记对于初学者来说尤其有价值,因为他们可以从中借鉴他人的经验,...
总而言之,这份“Java学习笔记”通过总结和梳理Java编程语言的基础知识、数据库操作、Web开发技术、Spring框架以及Linux命令,为学习者提供了一个全面而系统的学习路径,有助于学习者快速构建起扎实的Java开发能力。...
林信良,笔名良葛格,是台湾大学电机工程学系的学者,也曾担任SUN教育训练中心的讲师,他以其专业知识和丰富的教学经验撰写了《JAVA 学习笔记》和《Spring 技术手册》,并且是SUN官方教材的主要编写成员之一。...
### Java学习笔记知识点详解 ...以上内容涵盖了Java学习笔记中的主要知识点,这些知识点对于理解和掌握Java及其相关技术非常关键。无论是初学者还是有一定经验的开发者,都能从中获得有价值的信息。