Spring入门---了解七个模块,以及示例一【第一天】

Spring开源框架

一、了解Spring七个模块:

Spring核心由7个模块组成 :

核心容器、AOP模块、对象/关系映射集成模块ORMJDBC抽象和DAO模块、Springweb模块、运用上下文Ccontext模块、SpringMVC框架,

1、核心模块:提供了依赖注入(Dependency)特征来实现容器对bean的管理。最基本的概念:BeanFactory,它是任何Spring运用的核心。是工厂模式的一个实现,它使用IoC将运用配置个依赖说明从实际的运用代码分离出来。核心容器提供Spring框架的基本功能。使用控制反转IOC模式将运用程序的配置和依赖性规范与实际的运用程序代码分开。

2、AOP模块:即面向切面编程技术,允许通过分离运用的业务逻辑与系统服务(如安全和事物管理)进行内聚性的开发。运用对象只实现他们应该做的--------完成业务逻辑,仅此而已。他们并不负责系统级关注点,如日志或事物支持。

SpringAOP模块也将元数据编程引入Spring。使用Spring的元数据支持,可以为源代码增加注释,指示Spring在何处以及如何运用切面函数。

3、对象/关系映射集成模块ORMSpring没有自己实现ORM框架,而是集成了几个流行的ORM产品,如hibernateJDOiBATIS等。可以利用Spring对这些模块提供事务支持。

4、JDBC抽象和DAO模块:Spring不仅集成了几个ORM产品,也可以不选择这几款产品,因为Spring提供了JDBCDAO模块。该模块对现有的JDBC技术进行了优化,可以保持数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。

5、Springweb模块:Web上下文模块建立于运用上下文模块之上,提供了一个适合于Web运用的上下文。另外,这个模块还提供了一些面向服务的支持。例如:实现文件上传的mulitipart请求。他也提供了Spring和其他Web框架的集成,如StrutsWebWork

6、运用上下文Ccontext模块:核心模块的BeanFactory使Spring成为一个容器,而上下文模块使他成为一个框架。Web上下文模块建立于运用上下文模块之上,提供了一个适合于Web运用的上下文。另外,这个模块还提供了一些面向服务支持这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播及验证的支持。

 另外,这个模块提供了许多企业服务,如电子邮件、JNDI访问、EJB集成、远程以及时序调度服务等。也包括对模块板框架,如VelocityFreeMarker集成的支持。

7、SpringMVC框架:Spring可以很容易地与其他MVC框架集成,如Struts2,但SpringMVC框架使用IOC对控制逻辑和业务对象提供了完全的分离。

                                                                                                                                                      

为什么使用Spring

.方便耦合,简化开发。

.AOP编程的支持。

.声明事务的支持。

.很好地集成了其他比较成熟的开源产品。

.消除规定多样的定制属性文件的需要,用一致的配置操作贯穿整个运用和项目。

.培养良好的编程习惯,利用接口代替Class减弱编程成本,降至最少。

.提供了一致的数据访问框架,无论是JDBC,还是用像Hiberbate一样的O/Rmapping的产品。

                                                        

Spring入门示例

1、编写一个普通的Java(JavaBean)

package bean;

public class Hello {

public void sayHello(String name){

System.out.println("Hello"+name);

}

}

2、Spring配置文件applicationContext.xml

JavaBeanSpring容器来管理

<?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中配置beanid以及所对应的类 -->

<bean id="hello" class="bean.Hello"></bean>

</beans>

3、Web.xml中的配置:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

  <!-- SpringMVC的前端控制器 --> 

  <servlet>

    <servlet-name>springDispatcherServlet</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

     <!-- 设置自己定义的控制器xml文件 -->

    <init-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>classpath:springmvc.xml</param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <!-- Spring MVC配置文件结束 --> 

  

  <!-- 拦截设置 -->

  <servlet-mapping>

    <servlet-name>springDispatcherServlet</servlet-name>

    <!-- SpringMVC拦截所有请求 -->

    <url-pattern>/</url-pattern>

  </servlet-mapping>

  <!-- applicationContext.xml文件存放在src下的配置 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

</web-app>

注意:这里值得注意:applicationContext.xml该文件存放在src下时如下配置,如存放在WEB-INF下时,配置失败,探索中...。网上查的资料是如下配置的,试了不行:

  <!-- applicationContext.xml文件存放在WEB-INF下的配置 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>WEB-INF/applicationContext*.xml</param-value>

< /context-param>

4、如何使用Spring容器配置的Bean

package bean.test;

 

import org.springframework.beans.factory.BeanFactory;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

import bean.Hello;

 

//使用Spring配置的Bean

public class Test {

public static void main(String[] args) {

/*读取Spring配置文件,创建一个Bean工厂*/

@SuppressWarnings("resource")

BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");

/**读取Spring容器一个称为hellobeanSpring容器自动创建对象实例**/

Hello h = (Hello)factory.getBean("hello");

h.sayHello("张三");

}

}

 

启示:仔细观察Test实现,将有所领悟。

原文地址:https://www.cnblogs.com/ciscolee/p/10930510.html