spring学习笔记

艾斯利文      2022-02-13     643

关键词:

Spring学习笔记(一)

因为最近在看《Spring 技术内幕-深入解析Spring 架构与设计原理》,相当于做了个笔记,以及把自己理解的东西记录下来。

Spring整体架构图

1.Spring子项目

1.1 Spring Framework (Core)

  Spring项目的核心,其中包含IOC容器,提供依赖反转模式实现。

  同时,还包括AOP功能,面向切面变成,是对oop(面向对象编程的补充),如spring的日志、事物等都是通过AOP来实现。

  还包含了其他的模块,如MVC、JDBC、事物的处理等。

1.2 Spring Security:安全认证的工具,就和Shiro作用差不多。

1.3 Spring Web Flow:在Spring MVC基础上的工作流引擎。

1.4 Spring AMQP: 为了spring更好的根据AMQP(高级消息队列协议)的消息服务而开发。如SpringSource旗下的 Rabbit MQ就是一个开源的基于AMQP的消息服务器。

1.5 Spring Data:处理非关系型数据库。里面封装了JDBC。还提供了对ORM工具的封装,如可以集成Hibernatei、mybatis等。

还有一些其他的系项目就不一一介绍了。

2.Spring设计目标:

Spring体系的核心就是IOC容器和AOP模块。它通过IOC来管理POJO对象,以及它们之间的耦合关系。另一方面,通过AOP,可以动态的非侵入式的方式来增强服务的功能。

如增加日志、事物等。

 

什么是非侵入事的方式呢?

侵入性强指的是耦合太强了.判断的标准就是当引入了这个组件导致其它代码或者设计要做相应的更改以适应新组件.这样的情况我们就认为这个新组件具有侵入性。

 

AOP集成了AspectJ框架。同时也有ProxyFactory的代理工程模式。而代理模式的实现中;有JVM动态代理和CGLIB的实现。

面试题:AOP用到了什么技术?  JVM动态代理技术和CGLIB代理。

Spring 的设计理念就是,面向接口开发而不依赖与具体的产品实现。

解耦。

3.Spring整体架构

 

Spring IOC:包含了基本的IOC容易BeanFactory的接口与实现(Bean工厂模式)。除了最基本的BeanFactory容易形态外,还有ApplicationContext的高级形态。

这些ApplicationContext应用上下文,如FileSystemXmlApplicatonContext、ClassPathXmlApplicationContext。为了方便开发,像国际化消息源和应用支持事件这些特性。也

在这里配合IOC容器来实现。

 

Spring AOP:在JVM动态代理和CGLIB的基础上,实现的AOP框架。作为Spring集成其他模块的工具。比如:TransactionPorxyFactoryBean声明式事物处理,就是通过AOP集成到Spring中的。

 

Spring MVC:这个模块以DispetcherServlet为核心,实现了MVC模式。包括怎样与web容器环境的集成,web请求的拦截、分发,处理ModelAndView的返回。以及集成各种UI视图展现和数据表现。如PDF、Excel等。通过这个模块可以完成web的前端设计。

Spring JDBC/Spring ORM:对JDBC做了封装,处理数据层操作。还提供了ORM工具的封装,集成ORM工具,如Hibernate、mybatis等。

Spring事物处理:通过AOP实现的事务处理。完成了事物和具体业务的的解耦。如配置事物的拦截器,结合事物配置的属性,对事物对象处理,如事物的创建、挂起、提交、回滚等基本过程。具体的事务处理器,如;DataSourceTransactionManager,HibernateTransactionManager,JtaTranscationManager等。封装了不同的事物处理机制(JDBC、Hibernate/JTA等)。

Spring远端调用:可以解耦以后将应用模块分布式部署,提供系统整体的性能。这这种场景下,会用到。提供Spring应用到Spring应用之间的端到端的调用。

Spring应用:如对各种J2EE实现规范的接口,JMS、JNID、JMX、JavaMail等的支持。通过这个模块,可以容纳第三方的技术。

 

4.Spring应用场景

Spring提供的服务,可以贯穿应用的整个软件中,从表现层的Spring MVC、业务层的事物处理、数据层的Spring JDBC。也可以单独使用其中的某个模块,只要引入相应的jar包就可以。

 

spring视频学习笔记

Spring视频学习笔记(二) XML配置里的Bean自动装配(三个来测试实现)/***Person类**/publicclassPerson{ privateStringname; privateAddressaddress; privateCarcar; publicStringgetName(){ returnname; } publicvoidsetName(Stringnam 查看详情

spring源码学习笔记

 Spring源码学习笔记(五)  前言--    最近花了些时间看了《Spring源码深度解析》这本书,算是入门了Spring的源码吧。打算写下系列文章,回忆一下书的内容,总结代码的运行流程。推荐那些和我一样没接触过SSH框架... 查看详情

spring源码学习笔记

Spring源码学习笔记(七)  前言--    最近花了些时间看了《Spring源码深度解析》这本书,算是入门了Spring的源码吧。打算写下系列文章,回忆一下书的内容,总结代码的运行流程。推荐那些和我一样没接触过SSH框架源码... 查看详情

spring学习笔记

Spring学习总结----一、导入Spring必须的jar包二、简单示例入门注入一个User1.编写User实体类packagetest.Spring.helloworld;importjava.util.List;importjava.util.Map;publicclassUser{@OverridepublicStringtoString(){return"User[id="+id+",n 查看详情

spring学习笔记

原先的Spring学习的时候的笔记整理了一下觉得还行简单实用共享一下1要点记录23springIoc4{5671springbean在反射创建对象后使用的是单例模式!存在数据安全的问题8属性是被共享的!9如果该属性有数据,会引起线程安全的问题!10<... 查看详情

spring学习笔记01

1.Spring简介     Spring是为企业提供的一个轻量级的解决方案,包括:基于依赖注入的核心机制,基于AOP的声明式事务管理,与多种持久层技术的集合以及优秀的WEBMVC框架等。Spring框架的组成结构:   &... 查看详情

spring学习笔记

1.Spring框架的描述   1.Spring是一个开源框架   2.Spring为简化企业级应用开发而生   3.Spring是一个IoC/DI和AOP容器框架2.具体描述Spring   1.轻量级:Spring是非侵入式的-基于Spring开发的应用中的对象可以不依赖于Spring的API   2.... 查看详情

spring学习笔记02

依赖注入依赖注入的方式主要有两种,setter注入和构造器注入1.setter注入setter注入指的是通过成员变量的setter方法来注入被依赖的对象首先定义两个接口:publicinterfacePeople{voiddrinkWater();}publicinterfaceWater{StringmakeDrink();}定义实现类pu... 查看详情

spring学习笔记

...上。 (2)@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(requi 查看详情

高质量spring实战学习笔记,腾讯内部学习spring首推

Spring框架已经成为Java开发人员的必备知识,而且Spring3引入了强大的新特性,例如SpEL、Spring表达式语言、loC容器的新注解以及用户急需的对REST的支持。无论你是刚刚接触Spring还是被Spring3.0的新特性所吸引,这份笔记... 查看详情

spring学习笔记

1.1.1Spring是什么?Spring是一个开源的轻量级JavaSE(Java标准版本)/JavaEE(Java企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。1.1.2Spring能帮我们做什么?①Spring能帮我们根据配置文件创建及组装对象之间的依赖... 查看详情

spring学习笔记(代码片段)

目录1.Spring简介1.1Spring是什么1.2IOC和AOP简介1.3Spring的优势1.4Spring的体系结构2.Spring快速入门2.1Spring程序开发步骤2.2使用IDEA创建第一个Spring项目2.2.1导入Spring开发的基本包坐标2.2.2编写Dao接口和实现类2.2.3创建Spring核心配置文件2.2.4... 查看详情

spring学习笔记(持续更新)

1.spring替我们创建的bean,它放在哪里了?通常而言,我们一般会用到两种bean:singleton和prototype。对于singleton的bean,一旦创建过后,spring会把它存到一个map里面。DefaultSingletonBeanRegistry类/**Cacheofsingletonobjects:beanname-->beaninstance*/pr... 查看详情

spring学习笔记

spring课堂笔记框架:一个java应用程序的半成品项目,该项目中对java的软件开发进行了一部分的封装和定义标准,我们使用时 只需要学习框架,则会学会使用该框架开发新项目,再开发中使用框架可以提高开发效率,有利于团队... 查看详情

spring入门学习笔记

一、Bean二、Bean扫描:   三、Bean定义四、Autowired          五Qualifier     查看详情

java学习笔记:spring框架

1.什么是Spring?  1.1spring是一个开源框架  1.2spirng为简化企业级应用开发而生,使用spring可以使简单的JavaBean实现以前只有EJB才能实现的功能  1.3spring是一个IOC(DI)和AOP容器框架2.Spring入门示例     2.1HelloWorld.javapacka... 查看详情

spring框架学习笔记——配置bean

1、属性注入(1)根据setter方法属性注入,这里使用的是property标签。需要bean属性提供对应的setter方法,比如笔记(1)里的HelloWorld使用的就是这种方法。<!--根据setter方法属性注入--><beanid="helloworld"class="com.broadtext.beans.Hello... 查看详情

spring学习笔记(代码片段)

参考狂神说视频学习1、Spring框架Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角... 查看详情