spring in action学习-第一章 spring之旅

首先我先吐槽一下这本书的封面图,我能理解成一个包着头巾的男人举着个水壶昂首挺胸,最后给你个眼神....开玩笑的这幅插图是约旦西南部卡拉克省的居民,那里的山顶有座城堡,对死海和平原有极佳的视野,这幅图出自1796年的法国旅游图书,反应各个地区生活的多样性,同样,本书采用这个插图,也是对计算机行业进取的赞美。

题外话扯远了。

最近在看spring实战,该书由Craig Walls编写,Spring是一个开源框架,它由Rod Johnson创建,巴拉巴拉。。。。

它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情(首先要明白,什么是ejb)。最后任何Java应用都可以从Spring中受益。

先回忆一下,spring最重要的就是java bean、aop以及ioc(DI)。

科普一下ejb:

我的理解ejb属于j2ee框架的一部分,服务器端的组件,包括3类:会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

会话Bean就是当一个客户端请求到来时,容器就会创建一个会话bean来处理业务逻辑;

实体Bean是处理数据库映射的,持久化的;

消息驱动Bean,给予jms消息,异步无状态;

只能说到这了。

第一部分 spring的核心

核心部分首先想到有2个,依赖注入DI和AOP切面编程。

第一章 spring之旅

先来一次旅行,

还得从java说起,众所周知以前的开发模式是cs的,开发applet富客户端程序,同事他的缺点也就暴露了,难以模块化,系统臃肿。所以1996年12月,sun最先发布了javabean规范,定义了一个组件模型,可以被重用构建更为复杂的应用,但当时主要用来构建富客户端用户界面,企业级开发并未得到满足。

题外话:语言或者框架的发展,就是不断发现前辈的缺点,并改进,我的需求没有被满足。。。

众所周知,企业级应用非常复杂,需要事务处理、安全、分布式计算等等,所以就提出了ejb1.0,把规范延伸到了服务器端,很明显ejb并没有简化企业级开发,所以失败。

1.1简化java开发

spring的使命就是简化java开发,有以下几种策略:
基于pojo的轻量级编程;
通过依赖注入和接口编程来减少松耦合;
切面编程;
1.1.1激发pojo的潜能
1.1.2依赖注入
1.构造器注入:
类的构造方法会把另一个类的对象作为参数传递进来,例如:ClassA,ClassB
public ClassA(ClassB b){
this.b=b;
}
xml配置文件:
<bean id="knights" class="com.hundsun.springframwork.service.impl.KnightServiceImpl">
<constructor-arg ref="quest"></constructor-arg></bean>


2.属性注入

创建应用组件相互协作的行为成为装配,spring装配bean的方式有xml配置方式。
1.1.3应用切面
日志、事物管理、安全此类的系统经常融入业务逻辑中的组件,这些系统称为横切关注点。
<bean id="knights" class="com.hundsun.springframwork.service.impl.KnightServiceImpl"></bean>
<bean id="minstrel" class="com.hundsun.springframwork.dto.Minstrel"></bean>
<aop:config>
	<aop:aspect ref="minstrel">
		<aop:pointcut expression="execution(* *.quest(..))" id="embark"/>
		<aop:before pointcut-ref="embark" method="singBeforeQuest" />
		<aop:after pointcut-ref="embark" method="singAfterQuest" />
	</aop:aspect>
</aop:config>

minstrel对象是切面,切点为knights对象的quest()方法。
1.1.4使用模板消除样板式代码
样板式代码就是重复的代码,比如jdbc代码。

1.2容纳你的bean

1.2.1与应用上下文共事
3种常用的:
ClassPathXmlApplicationContext:类路径下加载

FileSystemXmlApplicationContext:文件系统加载
XmlWebApplicationContext:web应用中加载
1.2.2bean的生命周期

spring对bean进行初始化的过程:


1.3俯瞰spring风景线

1.3.1spring模块
spring有6个不同的功能模块,

1.4spring新功能

1.4.1spring2.5新特性
2.5版本最重要的特性是添加了注解,

1.4.2spring3.0的新特性


spring3.0要求jdk>=1.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值