springIoC实例

来源:互联网 发布:网络商标到期 编辑:程序博客网 时间:2024/05/16 06:48

 

Spring框架是一个非常优秀的轻量级J2EE容器,它是一个开源框架。可以更深层次的降低业务层的耦合程度,其核心是一个轻量级容器(Container),并且实现了IoC(控制反转)模式。

Spring是一个轻量级的IoC和面向切面(AOP)的容器框架。通过IoC技术促进了松耦合,提供了面向切面编程的丰富支持,并且允许通过分离应用业务逻辑与系统级服务进行内聚性的开发。

Spring框架是一个分层架构,由7个定义良好的组件组成。Spring组件构建在核心容器之上,核心容器创建、配置、管理Bean的方式。组成Spring框架的每个组件都可以单独存在,或者与其他一个或对个组件联合实现。7个组件如下所示

1.Spring Core

Spring的核心容器,提供Spring框架的基本功能。其主要组件是BeanFactory,它是工程模式的实现。BeanFactorys使用IoC模式将应用程序的配置和依赖性规范与实际的应该程序代码分开。

2.Spring Context

是一个配置文件,向Spring框架提供上下文信息。

3.Spring AOP

通过配置管理特性,Spring AOP直接将面向切面的编程功能集成到了Spring框架中。Spring AOP 为基于Spring的应用程序中的对象提供了事务管理服务。通过Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

4.Spring DAO

JDBC DAO抽象层提供了有意义的异常层次结构,可以用该结构来管理异常处理和不同数据库供应商抛出的错误信息。Spring DAO 面向JDBC的异常遵循通用的DAO异常层次结构。

异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码量(如:打开和关闭连接)

5.Spring ORM

Spring 框架插入了多个ORM框架,从而提供了ORM的对象关系工具。

6.Spring Web

Spring 框架支持与Jakarta Struts的集成。Spring Web组件简化了处理多部分请求以及将请求参数绑定到域对象的工作。

7.Spring Web MVC

该框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,Spring Web MVC框架变为高度可配置的。

DI(Dependency Injection,依赖注入)和IoC(Invaersion of Control,控制反转)是同一个概念。在Spring中,当一个角色A需要另一个角色B协助工作时,Spring容器负责调用B,而不需要A自己去调用,这被称为控制反转;Spring容器创建B的实例,然后注入给A,称为依赖注入。

  • 简单实例

1.接口类Book.java

package org;public interface Book {public String showAuthor(String author);public String showBookPrice(double bookPrice);}

2.实现类

HLM.java

package org;public class HLM implements Book{@Overridepublic String showAuthor(String author) {String str = "红楼梦作者:" + author;return str;}@Overridepublic String showBookPrice(double bookPrice) {String str = "红楼梦价格:" + bookPrice;return str;}}

SGYY.ava

package org;public class SGYY implements Book{public String showAuthor(String author) {String str = "三国演义作者:" + author;return str;}public String showBookPrice(double bookPrice) {String str = "三国演义价格:" + bookPrice;return str;}}

3.在WEB-INF下创建applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><!-- 让Spring 容器创建和管理这两个类,目的是让主程序只与Book接口耦合,而避免与实现类耦合。         这样当主程序需要使用者两个实现类时,只需要从Spring容器中取出这两个实现类的实例就可以了。 --><bean id="hlm" class="org.HLM" /><bean id="sgyy" class="org.SGYY" /></beans>

4.运行类Test.java

package org;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;public class Test {public static void main(String[] args)  {//读取配置文件ApplicationContext ac = new FileSystemXmlApplicationContext("/WebContent/WEB-INF/applicationContext.xml");//从Spring容器中获得实例hlmBook book = (Book) ac.getBean("hlm");System.out.println(book.showAuthor("曹雪芹"));System.out.println(book.showBookPrice(45.0));//从Spring容器中获得实例hlmBook book2 = (Book)ac.getBean("sgyy");System.out.println(book2.showAuthor("罗贯中"));System.out.println(book2.showBookPrice(41.0));}}



1 0
原创粉丝点击