• 01_Spring入门程序


    一.什么是Spring?

              1.Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架

              2.spring是一个高度灵活的轻量级框架,其目的是降低企业级应用开发的复杂度。

              3.以IoC(Inverse of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程为内核)

              4.Spring是免费开源的,下载地址:http://www.springsource.org/

              5.Spring的出现是为了取代EJB的臃肿、低效、脱离现实

    二.应用spring的好处?

    1.方便解耦,简化开发

               Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理

    2.AOP编程的支持

               Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

    3.声明式事务的支持

               只需要通过配置就可以完成对事务的管理,而无需手动编程

    4.方便程序的测试

               SpringJunit4支持,可以通过注解方便的测试Spring程序

    5.方便集成各种优秀框架

               Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:StrutsHibernateMyBatis等)的直接支持

    6.降低JavaEE API的使用难度

               Spring JavaEE开发中非常难用的一些APIJDBCJavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

    三.Spring功能模块的划分

               Spring 框架是一个分层架构,,它包含一系列的功能要素并被分为大约20个模块。这些模块分为Core ContainerData Access/IntegrationWebAOPAspect Oriented Programming)Instrumentation和测试部分,如下图所示:

    Core Container模块:

    CoreBeans模块:框架的基础部分,提供IOC(反转控制)和依赖注入(DI)特性。

    Context模块:构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。Context模块同时也支持J2EE的一些特性,例如EJB、JMX和基础的远程处理。ApplicationContext接口是Context模块的关键。

    Expression Language模块:Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操纵对象。

    AOP&&Instrumentation模块:

    AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现。

    DataAccess模块:

    JDBC模块:该模块提供了一个JDBC抽象层,简化了访问数据库的方式

    ORM模块:该模块为流行的对象-关系映射框架——JPA、JDO、Hibernate、iBatis等提供了一个交互层。

    Transaction模块:该模块支持编程和声明性的事物管理。

    Web模块:

      Web模块:该模块提供了基础的面向web的集成特性。例如多文件上传、使用servlet listeners初始化IoC容器以及一个面向web的应用上下文。它还包含Spring远程支持中web相关部分。 

    Web-Servlet模块:该模块包含Springmodel-view-controller(MVC)实现。

    Web-Struts模块:该模块提供了对Struts的支持。

    Web-Porlet模块:提供了用于portlet环境和Web-Servlet模块的MVC的实现。

    test模块:

     Test模块支持使用JUnitTestNGSpring组件进行测试

    四.Spring核心容器概述

    容器: 用来包装或装载物品的贮存器。

    web服务器与jsp、servlet之间的关系:

    1) 从程序文件存放的位置。

    2 )  从程序执行的方式。

    从以上两方面看web服务器实际是动态网页程序文件的容器。

    五.Spring核心容器IOC

    IOCInversion of Control) :控制反转,通过容器来控制对象的创建及维护,对象中成员变量的创建及维护。反转就是将对象的控制权转移给容器处理,目的是获得更好的扩展性和可维护性。

    Spring核心容器:核心容器是spring框架的核心,用户编写的程序文件发布到服务器后,由spring负责管理,包含对象的初始化、函数的调用、对象的消亡等等,因此可以将spring看作是服务器与应用程序的中间管理组件。

    六.Spring IOC控制反转入门案例

    Spring的核心容器可以管理任何java类,容器可以初始化该类,并返回该类的实例。入门程序简单演示容器的使用方法,程序包含如下4步:

                       下载Spring最新开发包

                        复制Spring开发 jar包到工程

                        理解IoC控制反转和DI依赖注入

                        编写Spring核心配置文件

                        在程序中读取Spring配置文件,通过Spring框架获得Bean,完成相应操作

    1.官方下载Spring 最新开发版本

     http://www.springsource.org/download/community

    2.导入Spring核心开发包到创建工程

     spring-beans-4.2.4.RELEASE.jar

     spring-context-4.2.4.RELEASE.jar

     spring-core-4.2.4.RELEASE.jar

     spring-expression-4.2.4.RELEASE.jar

    还需要下载commons-logging日志包

     commons-logging-1.1.1.jar       集成log4j 导入log4j jar

    解析:

    HelloTest类中使用 HelloService类对象

    传统方式: HelloService helloService = new HelloService();

    IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建HelloService对象的控制权,交由Spring框架管理,简单说,就是创建HelloService对象控制权被反转到了Spring框架

    七.开发步骤:

    1.在src下创建一个applicationContext.xml

    引入XML的约束:

    spring-framework-3.2.0.RELEASEdocsspring-framework-referencehtml目录下

    * 找到xsd-config.html.引入beans约束:

    <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">
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://www.springframework.org/schema/beans"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
    	<!-- 
    		name属性:对象名称   名称可以重复,也可出特殊字符
    		id属性:对象名称  (旧) 名称是不可以重复,而且不能有特殊字符
    	    class属性: 对象类全路径 
    	    scope属性 :singleton 单例(默认)
    	    	     prototype 多列
    	    	     request reqeust作用域使用(不用)
    	    	     session session作用域使用(不用)	    
    	    -->
    	<bean name="user" class="com.bean.User" scope="prototype"></bean>
    	
    	
    </beans>

    2.创建测试类

    public class MyTest {
     
        @Test
        public void test(){
    
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
            User user = (User)applicationContext.getBean("user");
    
            System.out.println(user);
        }
    }
    

    ApplicationContext和BeanFactory

    Spring提供了多种初始化容器的方式,其中最常见的是如下两种:

    BeanFactory:早期的javabean工厂类实现。

    ApplicationContext:对BeanFactory扩展,提供了更多功能。例如事件传递、Bean自动装配等。

                 ApplicationContext类继承了BeanFactory.

                 BeanFactory 采取延迟加载,第一次getBean时才会初始化Bean

                 BeanFactory在使用到这个类的时候,getBean()方法的时候才会加载这个类.

                 ApplicationContext类加载配置文件的时候,创建所有的类.

    IOC和DI区别:

    IOC:控制反转:将对象的创建权,由Spring管理.

    DI:依赖注入:在Spring创建对象的过程中,把对象依赖的属性注入到类中.

    费e

    t和Bea

  • 相关阅读:
    使用echo $? 查看命令成功执行的原理
    Ubuntu 12.04下NFS安装配置图解
    使用nfsstat命令查看NFS服务器状态
    ORACLE 中rownum和row_number()的使用区别(可指定取sql结果集的第几个数据)
    toad调用存储过程,存储过程调用sql 类
    指纹协查统计sql
    oracle 解锁表
    【转】经典排序算法
    wget 命令用法详解
    Linux 带宽、CPU、内存占用情况
  • 原文地址:https://www.cnblogs.com/jatpeo/p/11767532.html
Copyright © 2020-2023  润新知