Spring笔记---简介

1.Spring根本目的
简化Java开发。
为了降低Java开发复杂性,Spring采取了以下4种关键策略:
>.基于POJO的轻量级和最小侵入性编程;
>.通过依赖注入和面向接口实现松耦合;
>.基于切面和惯例进行声明式编程;
>.通过切面和模板减少样板式代码。
几乎,Spring所做的任何事情都可以追溯到上述一条或多条核心策略。
>1.轻量级和低侵入性:
   使用Spring不用被迫实现Spring规范的接口或继承Spring规范的类。相反,没有任何痕迹能够看出你使用了Spring。Spring是如何实现这点的呢?答案是依赖注入。

2.依赖注入(IoC或控制反转)
任何一个系统都是由一些类组成,这些类相互之间进行协作来完成特定的业务逻辑。通常,每个对象负责管理与自己相互协作的对象(即它所依赖的对象)的引用,但这会导致高度的耦合和难以测试。
耦合具有两面性,一方面,紧密耦合的代码难以测试、难以理解、难以复用,但一定程度的耦合又是必须的,因为,不同的类必须以适当的方式进行交互来完成特定功能。总而言之,耦合是必须的,但必须小心管理。
然而,通过依赖注入(DI),对象的依赖关系将由负责协调系统中各个对象的第三方组件在创建对象时设定。对象无需自行创建或管理它们的依赖关系。依赖关系将被自动注入到需要它们的对象中去。
实现松耦合的常用方法是采用接口,如果一个对象只通过接口来表明依赖关系,那么这种依赖就能在对象本身毫不知情的情况下用不同的具体实现来替换。

3.基于切面编程(AOP)
AOP允许你将遍布应用各处的功能分离出来形成可重用的组件。
AOP可以被定义为促使应用程序分离关注点的一项技术。系统由许多不同的组件组成,每个组件负责一块特定功能。但是,除了实现自身核心的功能外,这些组件还经常承担额外的职责。比如系统服务如日志、事务管理和安全等经常融入到有自身核心业务逻辑的组件中去,这些系统服务通常被称为横切关注点。
如果将这些关注点分散到各个组件中,将给你的代码引入双重复杂性:
>.关注点代码将会重复出现在各个组件中。要修改的则全部修改;
>.你的组件会因为那些与自身核心业务无关的代码而变得混乱。

 

而,AOP以声明的方式将它们应用到它们需要影响的组件中去。

4.容器
在基于Spring的应用中,应用对象生存于Spring容器中。Spring容器创建对象,装配它们,配置它们,并管理它们的整个生命周期,从生存到死亡。
容器是Spring框架的核心。Spring容器使用依赖注入管理构成应用的组件,它会创建相互协作的组件间的关联。
Spring自带了几种容器实现,可以归为两种不同的类型:
>.Bean工厂(由org.springframework.beans.factory.BeanFactory接口定义)是最简单的容器,提供基本的DI支持。
>.应用上下文(application由org.springframework.context.ApplicationContext接口定义)基于BeanFactory之上构建,并提供面向应用的服务,例如,从属性文件解析文本信息的能力,以及发布应用事件给感兴趣的事件监听者的能力。
一般,采用应用上下文。
Spring自带的几种应用上下文:
    >.ClassPathXmlApplicationContext---从类路径下的XML配置文件中加载上下文定义,把应用上下文定义文件当做类资源(从所有类路径,包括JAR文件,下查找);
>.FileSystemXmlApplicationContext---读取文件系统下的XML配置文件并加载上下文定义(只在指定文件系统路径下查找);
>.XmlWebApplicationContext---读取Web应用下的XML配置文件并装载上下文定义。
eg.
ApplicationContext context = new ClassPathXmlApplicationContext("foo.xml");

5.Bean的生命周期

6.Spring架构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值