Java进阶之Spring学习笔记——Spring的一些概念

一、Spring简介

Spring是当下主流的Java Web开发框架,它的成功来源于理念,而不是技术本身。它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP(Aspect OrientedProgramming,面向切面编程)。 它为了解决企业应用开发的复杂性问题而产生的。对于一个Java开发者来说,掌握Spring,已是必备技能之一。

1、Spring中的常用术语

框架:是能完成一定功能的半成品
   框架能够帮助我们完成的是:项目的整体框架、一些基础功能、规定了类和对象如何创建,如何协作
等,当我们开发一个项目时,框架帮助我们完成了一部分功能,我们自己再完成一部分,那这个项目就
完成了。
非侵入式设计
	⾮侵⼊式:对于Hibernate、Spring等框架,对现有的类结构没有影响,就能够增强JavaBean的功能
	从框架的角度可以理解为:无需继承框架提供的任何类 这样我们在更换框架时,之前写过的代码几乎可以继续使用
侵入式
		侵⼊式概念:侵⼊式:对于EJB、Struts2等⼀些传统的框架,通常是要实现特定的接⼝,继承特定的类才能增强功能。
		改变了java类的结构
轻量级和重量级:
	轻量级是相对于重量级而言的,轻量级一般就是非入侵性的、所依赖的东西非常少、资源占用非常少、 
	部署简单等等,其实就是比较容易使用,而重量级正好相反。
1、javaBean

javaBean是一种Java语言写成的可重用组件。为写成JavaBean,类必须是具体和公共的,并且具有无参
数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。更多的是一种
规范,即包含一组set和get方法的java对象。javaBean可以使应用程序更加面向对象,可以把数据封装
起来,把应用的业务逻辑和显示逻辑分离开,降低了开发的复杂程度和维护成本。

2、pojo

(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创
造的简称。
其中有一些属性及其getter、setter方法的类,没有业务逻辑,有时可以作为VO(value-object)或
DTO(Data Transfer Object)来使用。不允许有业务方法,也不能携带connection之类的方法。
与javaBean相比,javaBean则复杂很多,JavaBean是可复用的组件,对JavaBean并没有严格的规范,
理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于JavaBean是被容器创建的,所以
JavaBean应具有一个无参的构造器。另外,通常JavaBean还要实现Serializable接口用于实现Bean的持
久性。一般在web应用程序中建立一个数据库的映射对象时,我们只能称他为POJO。用来强调它是一个
普通的对象,而不是一个特殊的对象,其主要用来指代哪些没有遵从特定的java对象模型、约定或框架
(如EJB)的java对象。理想的将,一个POJO是一个不受任何限制的java对象

3、entity

实体bean,一般是用于ORM对象关系映射,一个实体映射成一张表,一般无业务逻辑代码。
负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个EntityBean对象相当于创建一
IT楠老师
条记录,删除一个EntityBean对象会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自
动将Entity Bean的状态和数据库同步。

Spring框架的优点

Spring 具有坚定,可测试和松耦合的特点,从这个角度出发,Spring不仅可以用于服务器端开发,也可以应用于任何Java应用开发中。具体如下。

  • 非侵入式设计
  • 低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦)
  • 声明式事务管理(基于切面和惯例)
  • 方便集成其他框架(如MyBatis、Hibernate)
  • 降低 Java 开发难度
  • Spring 框架中包括了 J2EE
  • 三层的每一层的解决方案(一站式)

4、Spring的框架结构

Core Container(核心容器)

Spring的核心容器是其他模块潜力的基础,它主要由Beans模块、Core模块、Context模块
Context+support模块和SpEL(Spring Expression Language,Spring表达式语言) 模块组成,具体介绍如下。

  • Beans模块:提供了BeanFactory,是工厂模式的经典实现,Spring将管理对象称为Bean。
  • Core核心模块:提供了Spring框架的基本组成部分,包括IOC和DI功能。
  • Context上下文模块:建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。其中ApplicationContext接口是上下文模块的焦点。
  • Context_support模块、提供了对第三方库嵌入Spring应用的集成支持,比如缓存(Ehcache、Guava、JCache)、邮件服务(JavaMail)、任务调度(CommonJ、Quartz)和模板引擎(FreeMarker、JasperReports、速率)。
  • SqEL模块:是Spring3.0后新增的模块。它提供了Spring Expression Language支持,是运行时查询和操作对象图的强大的表示式语言。

核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关
系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转
(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提
供给组件依赖。

Spring上下文(Spring context)

Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如JNDI、
EJB、电子邮件、国际化、校验和调度功能。
Spring面向切面编程(Spring AOP)
通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring框架中。所以,可以
很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象
提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用
程序中。

Spring DAO模块

DAO模式主要目的是将持久层相关问题与一般的的业务规则和工作流隔离开来。Spring 中的DAO提供一
致的方式访问数据库,不管采用何种持久化技术,Spring都提供一直的编程模型。Spring还对不同的持
久层技术提供一致的DAO方式的异常层次结构。

Spring ORM模块

Spring 与所有的主要的ORM映射框架都集成的很好,包括Hibernate、JDO实现、TopLink和IBatis SQL
Map等。Spring为所有的这些框架提供了模板之类的辅助类,达成了一致的编程风格。

Spring Web模块

Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。Web层使用
Web层框架,可选的,可以是Spring自己的MVC框架,或者提供的Web框架,如Struts、Webwork、
tapestry和jsf。

Spring MVC框架(Spring WebMVC)

MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置
的。Spring的MVC框架提供清晰的角色划分:控制器、验证器、命令对象、表单对象和模型对象、分发
器、处理器映射和视图解析器。Spring支持多种视图技术。

IOC容器

Spring的核⼼思想之⼀:Inversion 那么控制反转是什么意思呢???对象的创建交给外部容器完成,这个就做控制反转。
Spring使⽤控制反转来实现对象不⽤在程序中写死
控制反转解决对象处理问题【把对象交给别⼈创建】
那么对象的对象之间的依赖关系Spring是怎么做的呢??依赖注⼊:dependency injection.
Spring使⽤依赖注⼊来实现对象之间的依赖关系
在创建完对象之后,对象的关系处理就是依赖注⼊
上⾯已经说了,控制反转是通过外部容器完成的,⽽Spring⼜为我们提供了这么⼀个容器,我们⼀般将
这个容器叫做:IOC容器.
⽆论是创建对象、处理对象之间的依赖关系、对象创建的时间还是对象的数量,我们都是在Spring为我
们提供的IOC容器上配置对象的信息就好了。of Control , 控制反转 IOC

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

200Ok。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值