zoukankan      html  css  js  c++  java
  • 框架:初识Spring

    Spring篇

    第一章、Spring简介

    一、Spring的体系结构

    1、介绍

      Spring有20多个的模块,这些模块分布与核心容器(Core Container)、数据访问/集成(Data Access/Integration)层、Web层、AOP(面向切片的编程)模块、植入(Instrumentation)模块、消息(Messaging)传输和测验(Test)模块。

    图1.1 Spring的体系结构

    2、核心容器

       Spring的核心框架是其他模块建立的基础,由Spring-core、Spring-beans、Spring-context、Spring-context-support和Spring-expression(Spring表达式语言)等模块组成。

    • Spring-core:提供了框架的基本组成部分,包括控制反转和注册依赖功能。
    • Spring-beans:提供BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为Bean。
    • Spring-context:提供一个框架式的对象访问方式,是访问定义和配置的任何对象的媒介。ApplicationContext接口是Context模块的焦点。
    • Spring-context-support:支持整合第三方库到Spring的应用程序,特别是用于高速缓存和任务调度的支持
    • Spring-expression:提供了强大的表达式语言去支持运行时查询和操作对象图。这是对JSP 2.1规范中规定的统一表达式语言(Unified EL)的扩展。该语言支持设置和获取属性值、属性分配、方法调用、访问数组、集合和索引器的内容、逻辑和算术运算、变量命名以及从Spring的1oC容器中以名称检索对象。它还支持列表投影、选择以及常见的列表聚合。

    3、 AOP和Instrumentation

    • Spring-aop模块:提供了一个符合AOP要求的面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净地解耦。
    • Spring-aspects模块:提供了与AspectJ的集成功能, AspectJ是一个功能强大且成熟的AOP框架
    • Spring-instrument模块:提供了类植入(Instrumentation)支持和类加载器的实现可以在特定的应用服务器中使用。

    4、消息

    Spring 4.0以后新增了消息(Spring-messaging)模块,该模块提供了对消息传递体系结构和协议的支持

    5、数据访问/集成

      数据访问/集成层由JDBC, ORM, OXM,JMS和事务模块组成。

    • Spring-jdbc模块:提供了一个JDBC的抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析。
    • Spring-orm模块:为流行的对象关系映射(Object-Relational Mapping) API提供集成层,包括JPA和Hibernate.使用Spring-orm模块可以将这些O/R映射框架与Spring提供的所有其他功能结合使用,例如声明式事务管理功能
    • Spring-oxm模块:提供了一个支持对象/XML映射的抽象层实现,例如JAXB、Castor、JiBX和XStream.
    • Spring-jms模块(Java Messaging Service):指Java消息传递服务,包含用于生产和使用消息的功能。自Spring 4.1以后,提供了与Spring-messaging模块的集成。
    • Spring-tx模块(事务模块):支持用于实现特殊接口和所有POJO (普通Java对象)类的编程和声明式事务管理,

    6、Web

    • Web层由Spring-web, Spring-webmvc、 Spring-websocket和Portlet模块组成,
    • Spring-web模块:提供了基本的web开发集成功能,例如多文件上传功能、使用Servlet监听器初始化一个loC容器以及Web应用上下文。
    • Spring-webmvc模块:也称为Web-Servlet模块,包含用于Web应用程序的Spring MVC和REST Web Services实现。Spring MVC框架提供了领域模型代码和Web表单之间的清晰分离,并与Spring Framework的所有其他功能集成,。
    • Spring-websocket模块: Spring 4.0以后新增的模块,它提供了WebSocket和SockJS的实现
    • Portlet模块:类似于Servlet模块的功能,提供了Portlet环境下的MVC实现。

    7、测试

    Spring-test模块支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。

     二、实践

    第一步、在src的下面建立两个包,这两个包分别是dao和test

    第二步、在dao包中,建立接口文件TestDao

    package dao;
    
    public interface TestDao {
        public void sayHello();
    }
    

    第三步、在dao包中,建立接口实现类TestDaoImpl

    package dao;
    
    /**
     * 接口实现类
     * lin
     * 2018/11/22
     */
    public class TestDaoImpl implements TestDao {
        @Override
        public void sayHello() {
            System.out.println("Hello,Spring");
        }
    } 

    第四步、右键src,创建配置文件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.xsd">
        <!--将指定类TextDaoImpl配置给Spring,让Spring创建其实例-->
        <bean id="test" class="dao.TestDaoImpl"/>
    </beans>

    第五步、创建测试类

    在text的包中,创建text文件。

    package test;
    
    import dao.TestDao;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Test {
        public static void main(String[] args) {
            //初始化Spring容器ApplicationContest,加载配置文件
            ApplicationContext appCon=new ClassPathXmlApplicationContext("applicationContext.xml");
            //通过容器获取test实例
            TestDao testDao=(TestDao)appCon.getBean("test");//test为配置文件中的id
            testDao.sayHello();
        }
    }

    三、总结

    实现Spring的基础步骤

    1. 导入相关的JAR包
    2. 创建接口
    3. 创建接口的实现类
    4. 创建配置文件-------关键代码:<bean id="自定义配置文件的id" class="接口实现类【包名.接口实现类】"/>
    5. 创建测试类

    关键代码

         //初始化Spring容器ApplicationContest,加载配置文件
            ApplicationContext appCon=new ClassPathXmlApplicationContext("配置文件【加文件的扩展名】");
            //通过容器获取test实例
            接口名 testDao=(接口名)appCon.getBean("配置文件的自定义id");
            //接口的方法
            testDao.sayHello();

    四、说明:

    • 图1.1 Spring的体系结构在https://blog.csdn.net/cd18333612683/article/details/78312206获取,如有侵权请联系。
  • 相关阅读:
    jeecms 强大的采集功能优化 转载 https://blog.csdn.net/jeff06143132/article/details/7099003
    JEECMS自定义标签开发步骤
    jeecms之全文检索
    jeecms怎么修改后台访问路径?
    jeecms 基本架构研究
    Java JNI初探
    《高效程序员的45个习惯》
    Java并发编程:Thread类的使用
    Thread详解
    JAVA多线程实现的四种方式
  • 原文地址:https://www.cnblogs.com/hahayixiao/p/9998974.html
Copyright © 2011-2022 走看看