Spring的知识点

						Spring的知识点

开发工具与关键技术:知识点总结
作者:昨夜星辰
撰写时间:2020年12 月28 日
Spring框架由Rod Johnson开发, Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。
一、Spring的一些优点:

  1. 低侵入式设计,代码的污染极地。
  2. 独立于各种应用服务器,基于spring框架的应用,可以真正实现write once,Run Anywhere的承诺。
  3. Spring的IOC容器降低了业务对像的复杂性,提高了组件之间的解耦。
  4. Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中管理,从而提供了更好的复用。
  5. Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层到的数据库的访问。
  6. Spring的高度开放性,并不强调应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
    二、Spring的三大核心
    (1)IOC(控制反转) 实现将组件间的关系从程序内部提到外部容器(spring容器)来管理。
    (2)DI(依赖注入) 组件之间的依赖关系由容器在应用系统运行期来决定, 也就是由容器动态地将某种依 赖关系的目标对象实例注入到应用系统中的各个关联的组件之中
    (3) AOP(面向切面编程) 利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共 行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就 是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统 的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。 使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处 理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个 特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日 志、事物。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分 离开来。
    三、Spring Bean的作用域,Spring容器中的bean可以分为5个范围
    (1)singleton:范围默认,这种范围不管接收多少个请求,每个容器只有一个bean的实例,单利
    的模式,由factory自身维护。
    (2)prototype:为每一个bean请求提供实例
    (3)request在请求bean范围内为每一个我来自客户端的网络请求创建一个实例,在请求完成后,bean失效并会被垃圾回收。
    (4)Session确保每个session中有一个实例,在session过期后,备案会随之失效。
    (5)global-session:global-session和protlet应用相关。当你的应用部署容器工作时,它包含很多protlet.如果想要声明让所有的protlet共用全局的储存变量的话,那么全局变量需要储存在global-session中。
    四、Bean元素中的一些常用的属性
    1、id:是一个Bean的唯一标识符,Spring容器对Bean的配置和管理都通过该属性完成。
    2、name:Spring容器同样可以通过其属性对容器对Bean的配置和管理,name属性中可以为bean指
    定多个名称,每个名称之间用逗或分号隔开。
    3、class:该属性指定了bean的具体实现类,它必须是一个完整的类名,使用类的权限定名。
    4、scope 用于设定 Bean 实例的作用域,其属性值有 singleton(单例)、prototype(原 型)、request、
    session 和 global Session。其默认值是 singleton。
    5、constructorarg 元素的子元素,可以使用此元素传入构造参数进行实例化。该元素的 index 属性
    指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型。
    6、property 元素的子元素,用于调用 Bean 实例中的 Set 方法完成属性赋值,从而完成依赖 注入。
    该元素的 name 属性指定 Bean 实例中的相应属性名。
    7、ref 和 等元素的子元素索引,该元素中的 bean 属性用于指定对 Bean 工厂中某个 Bean 实例
    的引用。
    8、value 和 等元素的子元素,用于直接指定一个常量值。
    9、list 用于封装 List 或数组类型的依赖注入。
    10、set 用于封装 Set 类型属性的依赖注入。
    11、set 用于封装 Set 类型属性的依赖注入。
    12、map 用于封装 Map 类型属性的依赖注入。
    13、entry 元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value
    子元素指定其值。
    五、Spring的核心注解
    @Repository持久层(dao层)@Service 服务层(service层)
    @Controller 控制层 @component (把普通pojo实例化到spring容器中)
    @Autowired (IOC自动装配,默认按照类型)
    @Resource (IOC自动装配,默认按照名称,再按类型)
    六、事务的4个特性
    1、原子性(Atomic):事务是由一个或多个活动所组成的一个工作单元。原子确保事务中的所有操
    作全部发生或全部不发生。如果所有的活动都成功了,事务也就成功了。如果任意一个活动失
    败了,整个事务也失败并回滚。
    2、一致性(Consistent):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处
    于一致的状态。现实的数据不应该被损坏。
    3、隔离性(Isolated):事务允许多个用户对相同的数据进行操作,每个用户的操作不会与其他用
    户纠缠在一起。因此,事务应该被彼此隔离,避免发生同步读写相同数据的事情(注意的是,
    隔离性往往涉及到锁定数据库中的行或表)。
    4、持久性(Durable):一旦事务完成,事务的结果应该持久化,这样就能从任何的系统崩溃中恢复 过来。这一般会涉及将结果存储到数据库或其他形式的持久化存储中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值