• 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。

    IOC 


      控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。

    IOC实现模式:1、通过 JavaBean 的属性(例如 setter 方法)分配依赖性

           2、依赖性以构造函数的形式提供,不以 JavaBean 属性的形式公开

    AOP


      面向方面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。

      AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优势就是 Java 类不需要知道日志服务的存在,也不需要考虑相关的代码。所以,用 Spring AOP 编写的应用程序代码是松散耦合的。

    Spring 环境搭建


    第一步:先去了解一下spring的官网,在里面找到spring的框架的jar,最新版的就可以

    第二步:在你的eclipse中见一个Java project项目就可以,创建一个lib文件夹将你的jar包放入其中并引入,在你的src文件下创建一个xml文件,是关于spring的一些配置的,这里名字可以自己定义,以后会有指定的名字叫applicationContext.xml,也可以现在就设置这个名,项目结构:

    第三步:先建一个接口和他的实现类

    接口

    package com.spring.action;
    /**
     * 
     * @author 坚持到你GL
     *
     */
    public interface HelloWorld {
        public String hello();
    }

    实现类

    package com.spring.action;
    /**
     * 
     * @author 坚持到你GL
     *
     */
    public class HelloWorldImpl  implements HelloWorld{
        @Override
        public String hello() {
            // TODO Auto-generated method stub
            return "Hello World!!!";
        }
    }

    第四步:配置一下你的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"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
        <bean id="helloWorld" class="com.spring.action.HelloWorldImpl"></bean>  

    简单说一些其中的属性说明,一些没出现的属性说明

    <!--  id是bean的标识符,必须唯一,如果没有配置id,name默认为标识符
          如果配置了id,有配置了name,那么name为别名
         name可以设置多个别名,分隔符可以是空格 逗号 分号
         class是bean的全限定名,即包名加类名
            如果不配置id和name,那么可以根据applicationContext.getbean(Class)获取对象,
       scope:bean的作用域,
          取值:singleton:单例的,整个容器只产生一个对象,默认是单例
             prototype:原型,每次获取bean都创建一个新对象
             request:每次请求时创建一个新的对象
             session:在一个会话范围内只产生一个对象
             application:在应用范围内是一个对象
        autowire:自动装配 用于简化spring的配置
          取值:byname:根据名称(根据set方法中set后面的内容)去查找相应的bean,发现了则装载上
             bytype:根据类型自动装配,不用去管id,但同一种类型的bean只能有一个,f否则报错
             constructor,当通过构造器注入实例化bean时,装配构造方法
     -->
    <!--可以读取到其他配置的xml,如果在当前目录下,直接写文件名,如果是在其他目录下,要写完整包名,以"/"分隔-->
    <import resource="beans1.xml"/>

    第五步:建一个测试类

    package com.spring.action;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    /**
     * 
     * @author 坚持到你GL
     *
     */
    public class Test {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            ApplicationContext apc = new ClassPathXmlApplicationContext("springXML/HelloWorld.xml");  
            HelloWorld hello = apc.getBean("helloWorld",HelloWorld.class);  
            System.out.println(hello.hello());
        }
    }

    这样一个Hello World就完整写完是最简单的一个

          【版本声明】本文为博主原创文章,转载请注明出处

  • 相关阅读:
    Linux之HugePages快速配置
    Bug 5323844-IMPDP无法导入远程数据库同义词的同义词
    Oracle之SQL优化专题02-稳固SQL执行计划的方法
    使用COE脚本绑定SQL Profile
    AIX挂载NFS写入效率低效解决
    javaWeb项目配置自定义404错误页
    eclipse Referenced file contains errors (http://www.springframework.org/schema/context/spring-context-3.0.xsd)
    tomcat Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    orcle not like不建议使用(not like所踩过的坑!)
    eclipse debug调试 class文件 Source not found.
  • 原文地址:https://www.cnblogs.com/zhouguanglin/p/7668278.html
Copyright © 2020-2023  润新知