spring相关知识整理

什么是spring

Spring是一个基于IOC(控制反转)和AOP(面向切面)的结构J2EE系统的框架

AOP

理解AOP编程思想

IOC

IOC 反转控制 是Spring的基础,Inversion Of Control
依赖注入和控制反转的理解

控制反转的技术描述:
简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象
Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。而具体获取的方法、对象被获取时的状态由配置文件(如XML)来指定。

IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。

解释:比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。

spring优点

  • spring是面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

面向接口编程详解

  • Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理
  • Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
  • Spring对Junit4支持,可以通过注解方便的测试Spring程序

spring体系结构
Spring框架整体被分为五个模块:核心容器(core container), 面向切面编程(aop), 数据访问(date access), web, test.

core
core部分包含4个模块

spring-core:依赖注入IoC与DI的最基本实现

spring-beans:Bean工厂与bean的装配

//JavaBean是一个遵循特定写法的Java类:
1.这个Java类必须具有一个无参的构造函数

2.属性必须私有化。

3.私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。

4.提供getter和setter方法。
这样,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。
//

spring-context:spring的context上下文即IoC容器

spring-expression:spring表达式语言

因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging

aop
aop部分包含4个模块

spring-aop:面向切面编程

spring-aspects:集成AspectJ //实现AOP的框架

spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器

spring-instrument-tomcat:针对tomcat的instrument实现(包含了spring的tomcat设备代理)

data access
data access部分包含5个模块

spring-jdbc:jdbc的支持

spring-tx:事务控制

spring-orm:对象关系映射,集成orm框架

spring-oxm:对象xml映射

spring-jms:java消息服务

web
web包含4个模块

spring-web:基础web功能,如文件上传 //

spring-webmvc:mvc实现

spring-webmvc-portlet:基于portlet的mvc实现

spring-websocket:为web应用提供的高效通信工具

test

spring-test:spring测试,提供junit与mock测试功能
//JUnit是一个开放源代码的Java测试框架
junit是在极限编程和重构(refactor)中被极力推荐使用的工具
极限编程基本过程是这样的:构思-> 编写测试代码-> 编写代码-> 测试
//

spring-context-support:spring额外支持包,比如邮件服务、视图解析等

该Spring知识点参考博客

你可能感兴趣的:(spring)