Spring框架教程:快速帮助Java开源
弹簧框架介绍
您可能已经知道,Spring Framework是Java的一个开源平台,它提供了一个完整的基础设施平台,可以快速而轻松地开发Java应用程序。betwayapp下载安装Java的Spring框架是由Rod Johnson在Apache 2.0许可下创建的。版本4.0是本月早些时候发布的Spring框架的最新版本。
Java Spring框架是最受喜爱的企业Java开发框架之一。betwayapp下载安装世界各地的开发人员使用Spring Framework来开发强大,高功能和可重复使用的应用程序。Java Spring框架最基本的版本围绕几兆字节大小,这表明它的轻量级美德与其框架透明度相结合。
Spring框架的核心特性可用于开发各种Java应用程序。然而,还有一些其他扩展可以在J2EE平台上构建web应用程序。因此,创建Spring框架是为了简化J2EE开发环境的使用,并通过引入基于POJO的编程模型,使被开发人员能够遵循真正betwayapp下载安装的编程实践。
理解Spring框架的基本架构:
1.数据库集成-顾名思义,这个模块是专门为数据库集成设计和包含的-顾名思义,这个模块是专门为在开发企业应用程序时提供连接应用程序UI及其后端到数据库的接口而设计和包含的。
数据库集成模块中涵盖的子模块列表:
1.JDBC
2.ORM
3.OXM
4.JMS
5.交易
2.Web(远程/MVC)开发——Webetwayapp下载安装b开发模块本质上是为使用Spring框架开发基于Web的应用程序而设计的。基于MVbetwayapp下载安装C的Web开发,组织良好。如果你只开发基于web的应用程序,你可以单独安装这个模块。
Web开发模块中涵盖的子模块列表:betwayapp下载安装
1.网
2. servlet.
3.Porlet
4.Struts
3.核心容器——核心容器模块包含核心java开发功能。betwayapp下载安装由于其基本功能,Code Container是所有开发人员最基本的模块。
4.代码容器模块中涵盖的子模块列表。
1.豆子
2.核心
3.上下文
4.表达语言
5. AOP,方面和仪器是弹簧框架的其他三个模块。但是,您必须先知道核心Java以详细了解春季框架。
Spring框架有一个很好的特性,即可靠的事务管理接口,允许向下扩展到本地事务(即不使用多个dbs),并向上扩展到全局事务(即使用JTA)。
了解春天的基本面
Spring容器
Spring Container是Spring框架的核心。Spring Container用于创建对象、将它们彼此连接、配置它们并管理这些对象的完整生命周期(从创建到销毁)。这些对象被称为spring bean,我们将在本教程的后面讨论它。
在提供的配置元数据的帮助下,Spring Container决定启动、配置和组装特定对象。Spring Container的配置元数据输入是用Java或XML构建的。
下图为您提供了Spring框架工作的高级概述。如图所示,Spring容器结合使用POJO类和配置元数据来创建高性能和配置完整的可执行应用程序。
基本上,Spring提供了两种不同类型的容器:
1.豆厂容器
Bean Factory是最简单的容器,为DI提供支持。该接口由“theorg.springframework.beans.factory.beanfactory”定义。“Bean Factory相关的接口,如DikeAblebean,InitializateBean,BenfactoryAware仍然存在于Spring框架中,只需支持对众多第三方框架的向后兼容性。
2.应用程序上下文容器
Application Context Container更多的是一种特定于企业的功能,它支持从属性文件中解析文本消息以及将应用程序事件发布到订阅的事件监听器等复杂任务。
基本上,应用程序上下文容器支持Bean Factory Container提供的所有功能。豆类工厂用于很少的轻量级应用,例如移动应用程序,其中速度和数据量具有更高的重要性。
Spring bean
正如我们在Spring Container一节中提到的,Spring bean是那些概述应用程序主干并由Spring容器管理的对象。spring bean是一个可以被spring容器实例化、组装和管理的对象。bean是在容器的配置元数据输入的帮助下定义的,例如XML配置文件中的
spring bean定义具有与配置元数据相关的信息,容器需要获取以下详细信息:
如何创建bean?
bean的生命周期细节
bean的依赖关系
上面提到的配置元数据有一些重要的属性,有助于创建每个bean的定义:
班级
属性
范围
名称
Constructor-arg
初始化方法
破坏的方法
自动模式
春天豆的范围
在Spring框架,开发人员可以选择定义spring bean的范围。例如,为了允许spring在每次需要一个新的bean实例时创建一个bean实例,开发人员应该将bean的scope属性声明为一个原型。如果开发人员希望Spring Framework在每个需求时返回类似的bean实例,bean的scope属性应该声明为singleton。
Spring框架支持5个作用域。然而,其中有一些只能在web感知的Application Context容器中使用:
单例作用域允许在每个单个spring容器中定义单个bean实例。
Prototype - Scope允许在任何容器中为bean的n个bean实例定义。
Request - scope允许仅键入HTTP请求的Bean定义。请求范围仅适用于应用程序上下文Spring容器。
session - scope允许Bean定义类型HTTP会话。就像请求范围一样,它仅适用于应用程序上下文弹簧容器。
全局会话 - 范围允许Bean定义类型HTTP会话。适用于应用程序上下文Spring容器。
春天豆的生命周期
它可以简单地了解C ++中的类对象的生命周期。就像一个对象一样,bean被定义为对bean执行少数重要初始化以成为一个有用的实体。类似地,当不再需要时,从弹簧容器中移除豆,然后执行一些清理活动。
尽管如此,在初始化和销毁之间,bean在幕后执行了一长串活动,我们将只讨论bean生命周期中的两个回调方法,它们在bean初始化和销毁时都是需要的。
为了定义bean的实例化和销毁,开发人员可以分别用init方法和destroy方法声明一个带有
豆初始化
org.springframework.beans.factory.InitializingBean是Bean初始化回调的单个方法。方法空隙afterpropertiesset()用于抛出异常。这只是意味着开发人员可以在里面实现初始化方法afterpropertiesset()函数。
如果使用基于xml的配置元数据,可以使用init-method属性指定不带参数和void返回签名的方法或函数名。即。
这是一个示例类定义
Public class SampleBean {//Bean初始化}}
破坏回调
disposable bean定义了一个用于销毁的方法,类似于初始化接口。
这里,void destroy()方法是抛出异常的方法,这意味着上述界面和豆毁坏工作可以在Void Destroy()函数内进行:
public class SampleBean implements DestructableBean {public void destroyssample () {//Bean销毁工作}}
如果开发人员使用XML配置的元数据,可以使用destroy-method属性指定方法名,并将签名指定为无参数和void返回。即。
下面是类的定义:
以下是类定义:
public class SampleBean {public void destroyssample(){//销毁工作}}
Spring依赖性注入
所有基于Java的应用程序(对于此事项,各种应用程序)包含次数串联的对象,它以同步方式工作,以呈现用户用作应用程序的程序。但是,Java开发人员必须了解一个原则是,在Java中开发复杂应用程序的同时,确保尽可能多地定义Java类,以便它们具有优化的可重用性,并且可以在时单元测试.所以,帮助这些类粘合在一起的就是所谓的依赖注入。
请检查以下类别:
public class Notepad {private CheckSpell CheckSpell;public notepad() {Checkspell = new Checkspell ();} }
我们实际上正在创建检查台类内部函数中的CheckSpell类依赖性。相反,在没有依赖的情况下,可以完成以下某种问题:
public class notepad {private CheckSpell CheckSpell;公共记事本(CheckSpell CheckSpell){这个。checkspell = checkspell;} }
在这里,不需要记事本担心CheckSpell的实现。在这种情况下,SpellCheck可以独立实现,它的对象将在记事本初始化期间提供给记事本,整个操作将由Spring框架控制。整个方法称为基于构造函数的依赖注入。
基本上,控制现在已经完全从记事本中删除,并将其保存在一些独立的实体(如XML配置文件)中。随后,依赖关系(类SpellCheck)现在通过类构造函数注入到记事本类中。因此,在依赖注入的帮助下,应用程序流已经被反转了,因为依赖现在被委托给一些其他的外部方法。
依赖注入的另一种方法是众所周知的Setter方法,其中依赖是在记事本类的Setter方法的帮助下注入的。在这种情况下,将创建CheckSpell类的实例,并用于调用setter方法来初始化notepad的属性。