Spring(二):Spring框架&Hello Spring

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。

  • Spring 框架

Spring框架是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式。

组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下问信息。Spring上下文包括企业服务,例如:JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring AOP:通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以容易地使Spring框架管理的任何对象支持AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的异常消息。异常层次结构简化了错误处理,并极大地降低了需要编写的异常代码数量(例如:打开和关闭连接)。Spring DAO的面向JDBC的异常遵从通用的DAO异常层次结构。

Spring ORM:Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatis SQL Map。所有这些都遵从Spring的通用事务和DAO异常层次结构。

Spring Web模块:Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与Jakarta Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

Spring MVC模块:MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架编程为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText和POI。

参考文章:https://www.ibm.com/developerworks/cn/java/wa-spring1/

  • Hello Spring工程

创一个Java Project工程,创建com.dx.spring.beans包,在包下创建类:

HelloSpring.java

package com.dx.spring.beans;

public class HelloSpring {
    private String name;

    public HelloSpring() {

    }

    public void setName(String name) {
        this.name = name;
    }

    public void sayHello() {
        System.out.println("Hello " + this.name);
    }
}

一般按照正常的调用方式,我们需要创建一个MyClient.java

package com.dx.spring.beans;

public class MyClient {
    public static void main(String[] args) {
        HelloSpring helloSpring = new HelloSpring();
        helloSpring.setName("Spring");
        helloSpring.sayHello();
    }
}

如果我们使用了spring来管理HelloSpring,需要做以下工作:

1、在工程下根目录下创建一个lib文件夹,把spring必须的依赖包拷贝到lib下,并右键添加到引用中。

2、需要在src根目录下创建applicationContext.xml(Spring Bean Configuration File)文件,并编写配置文件信息:

<?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.xsd">
    
    <bean name="helloSpring" class="com.dx.spring.beans.HelloSpring">
        <property name="name" value="Spring"></property>
    </bean>

</beans>

3、修改MyClient.java的调用方式:

package com.dx.spring.beans;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyClient {
    public static void main(String[] args) {
        ApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");
        HelloSpring helloSpring = (HelloSpring) cxt.getBean("helloSpring");
        helloSpring.sayHello();
    }
}
原文地址:https://www.cnblogs.com/yy3b2007com/p/6792460.html