zoukankan      html  css  js  c++  java
  • 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实现,将有所领悟。

  • 相关阅读:
    Acwing 164 可达性统计 (拓扑排序+bitset)
    STL-bitset的基本用法
    Acwing 115 给树染色 (贪心)
    Acwing 112 雷达设备 (贪心)
    Acwing 110 畜栏预定 (贪心+stl)
    Acwing 110 防晒 (贪心算法)
    Acwing 七夕祭 (前缀和+中位数+思维)
    Acwing 103 电影 (map)
    USACO 最佳牛围栏 (二分答案+前缀和+双指针)
    Acwing 101 最高的牛 (差分数组)
  • 原文地址:https://www.cnblogs.com/ciscolee/p/10930510.html
Copyright © 2011-2022 走看看