spring学习大总结-----spring知识点总结概述

花了一段时间,将spring的基础知识给整理完毕,在这里做一下总结。

DI和AOP

spring最核心的两个部分一个是DI(依赖注入)一个是AOP(面向切面编程)。

对于DI,自己理解的就是spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件,所以,对于spring容器,离不开配置文件。

AOP ,面向切面编程,我所简单的理解就是 在一个工作流程之中,在某一个点,在有些时候,我们需要执行一些特殊的代码处理,但是这种情况是有时有,有时没有,如果我们将代码写入到工作流中,则没有办法控制,什么时候有,什么时候没有,于是,我们就想办法将我们的这个代码给整理出来,然后利用配置文件,将这个代码,在某些特定时刻进行执行。就好比,如果我们需要处理,我们就在这个工作流中切出一个面,然后植入我们的代码,进行执行。就好比一个流水线工作,我们在我们需要的地方切了一刀,然后植入我们的代码,然后进行工作。

配置文件

spring可以说是最核心的东西就是配置文件,但是现在又有一种是基于注解的方式,那种方式更简单灵活,建议使用注解方式。
spring配置文件主要是配置bean
spring配置文件也可以用来引入外部文件
在引入外部文件时,我们需要引入命名空间【context】。

Bean相关

在Spring的配置文件中,我们最多的就是配置bean,就是我们所说的类,也就是组件。
1、配置bean组件,即我们所说的类,有三种方式属性注入,构造器注入,工厂方法注入第三种当时可以忘记,最主要的就是属性注入和构造器注入
2、bean与bean之间的交互则是利用ref属性进行关联
3、要知道对于集合的注入方式,spring给我们内置了一些集合属性,我们就是利用这些来注入我们的集合属性。
4、对于bean的自动装配问题,我们不建议重新配置使用,有时候用默认的就可以了,我们可以利用bean的autowire属性进行设置是按照name装配还是按照type装配。
5、对于bean之间的关系有继承和依赖。在继承之中我们还可以设置属性abstract为 true, 这样 Spring 将不会实例化这个 Bean。 【 类比于类与类之间的is a与 has a
6、 Bean 的作用域,在 Spring 中, 可以在 【bean】 元素的 scope 属性里设置。有五种形式的scope。分别是【singleton】【prototype 】【request】【session】【global session 】。
7、bean的生命周期,了解即可,还要知道有后置处理器的bean的生命周期
8、bean的配置方式,三种【通过全类名】【通过工厂方法】【通过FactoryBean】

SpEL

spel——spring表达式语言,用在配置文件中用来支持运行时查询和操作对象图,SpEL 为 bean 的属性进行动态赋值提供了便利。

基于注解配置bean

在spring基于注解的配置中,首先我们应该知道首先加入aop的jar包引入context命名空间
类四大注解:【Component】【Controller】【Service】【Respository】【Aspect】
属性三大注解:【Autowired】【Resource】【Inject】{Autowired按byType自动注入,Resource默认按 byName自动注入}
方法注解:【Transaction】

AOP—–AspectJ

1、Aspectj专门产生动态代理的一个框架,spring的aop使用了这个动态代理,他也是Java 社区里最完整最流行的 AOP 框架。
2、要让spring支持AOP,需要导入AspectJ 类库: aopalliance.jar、aspectj.weaver.jar 和 spring-aspects.jar,而且我们还要在配置文件中增加aop命名空间
3、要在 Spring IOC 容器中启用 AspectJ 注解支持, 只要在 Bean 配置文件中定义一个空的 XML 元素 【aop:aspectj-autoproxy】

AOP——五大通知

【前置通知】【后置通知】【返回通知】【异常通知】【【环绕通知】尤其要注意【后置通知】和【返回通知】之间的细微区别。
在通知中我们用到了切入点表达式,还有就是利用@Pointcut用于声明切入点达式,可以达到重用切入点表达式的效果,定义在方法上面。而利用注解【@Order】可以对切面进行优先级排序。也是在类上定义order

基于配置文件的通知最重要的就是【aop:config】【aop:pointcut:配置切点表达式】【aop:aspect:配置切面及通知】三个标签。

JDBC的支持

最重要的是配置模板JdbcTemplate或者NamedParameterJdbcTemplate的bean。他们之间最大的差别就是对具名参数的支持。

对事务管理的支持

使用注解方式:
第一步:配置文件中添加对应的命名空间 tx,引入对应的约束。
第二步:配置文件中声明式事务配置。
第三步:进行事务处理。
使用xml方式:
1.配置事务管理器 。
2.配置事务属性 。
3.配置事务切入点,以及把事务切入点和事务属性关联起来。

其中我们最应该关注的是事务的传播行为propagation事务的隔离级别isolation

spring jar包分析

首先spring的日志是基于【commons-logging】进行的,所以必须包含这个jar包。
【spring-aop】Spring的面向切面编程的实现jar
【spring-aspects】Spring提供的对AspectJ框架的整合。
【spring-beans】核心jar,配置bean用,Spring IOC的基础实现。
【spring-context】核心jar,基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持
【spring-context-support】spring-context的扩展。
【spring-core】核心jar Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是 其它组件的基本核心。
【spring-expression】Spring表达式语言spel。
【Spring tx】为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。

===============================================================

【spring-instrument】 Spring对服务器的代理接口。
【spring-instrument-tomcat】 Spring对tomcat连接池的集成。
【spring-jdbc】Spring对JDBC 的简单封装。
【spring-jms】Spring为简化jms api的使用而做的简单封装。
【Spring oxm】Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换
【Spring test】对JUNIT等测试框架的简单封装。

=============================

【Spring orm】整合第三方的orm实现。
【Spring web】包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
【Spring webmvc】包含SpringMVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
【Spring webmvc portlet】Spring MVC的增强。
关于jar的分析引自【http://blog.csdn.net/accountwcx/article/details/39234137】
详细介绍看【http://blog.csdn.net/weisong530624687/article/details/50888094】

你可能感兴趣的:(spring笔记)