Spring实战 第一章 Sping之旅

1.1 简化Java开发

  1. 基于POJO的轻量级及最小侵入编程
    Spring的一大特点是最小侵入性编程,它不会强迫我们去实现它的接口或实现类,POJO依旧是那个POJO。我们只是将依赖交由Spring管理,因此,IOC配置也就是Bean的装配便是很大一部分工作。
  2. 依赖注入
public class DamselRescuingKnight implements Knight{
	private RescueDamselQuest quest;
	public DamselRescuingKnight(){
		this.quest=new RescueDamselQuest();
	}
	public void embarkonQuest(){
		quest.embark();
	}

缺点:紧耦合的代码难以测试与复用,RescueDanselQuest和DamselRescuingKnight紧密地联系在一起,DamselRescuingKnight无法调用其他类的embark()方法。

public class BravegKnight implements Knight{
	private Quest quest;
	public BravegKnight (Quest quest){
		this.quest=quest;
	}
	public void embarkonQuest(){
		quest.embark();
	}

优点:传入的参数类型是Quest,这样BraveKnight可以响应实现Quest接口的任意实现。如果一个对象只通过接口来表明依赖关系,那这种依赖就能够在对象本身不知情的情况下,用不同的具体实现进行替换。

  1. 应用切面:把遍布应用各处的功能分离出来形成可重用的组件。
<aop:config>
	<aop:aspect ref='minstrel'>   //把minstrel bean声明为一个切面
		<aop:pointcut id='embark'
				expression="execution(* *.embarkOnQuest(..))"/>  //定义切点
		<aop:before pointcut-ref="embark"
			 method="singleBeforeQuest" />
		<aop:after pointcut-ref="embark"
			 method="singleAfterQuest" />
	<aop:aspect>	
</aop:config> 

1.2 容纳你的Bean

  1. BeanFactory和ApplicationContext
    BeanFactory是Spring里面最低层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能。ApplicationContext继承BeanFactory接口,它是Spring的一各更高级的容器,提供了更多的有用的功能,如AOP等。
    BeanFactory在启动的时候不会去实例化Bean,中有从容器中拿Bean的时候才会去实例化。ApplicationContext在启动的时候就把所有的Bean全部实例化了。
  2. ApplicationContext:
    AnnotationConfigApplicationContext: 从java的配置类中加载Spring应用上下文
    AnnotationConfigWebApplicationContext:从java配置类中加载Spring web应用上下文
    ClassPathXmlApplicationContext:从xml配置文件中加载上下文定义,把应用上下文的定义文件作为类资源
    FileSystemXmlApplicationContext:从文件系统下的一个或多个xml文件加载上下文
    XmlWebApplicationContext:从web应用下的一个或多个xml文件加载上下文
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值