zoukankan      html  css  js  c++  java
  • Spring 基础入门

    一.Spring主要概念理解

    1 IOC(控制反转):不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。  容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。第一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度。

    2.Bean: 由Spring IoC容器所管理的对象被称之为bean。bean就是由Spring容器初始化、装配及被管理的对象。  bean定义以及bean相互间的依赖关系将通过配置元数据来描述。

    3.Spring IoC容器:org.springframework.beans包是Spring IoC容器的基础。  org.springframework.beans.factory.BeanFactory接口是Spring IoC容器的实际代表者。  IoC容器负责容纳此前所描述的bean,并对bean进行管理。

    4.BeanFactory: BeanFactory是IoC容器的核心接口。是工厂设计模式的实现。bean 工厂的概念是 Spring 作为 IOC 容器的基础。   它的职责包括:实例化、检索、配置应用程序中的对象及管理对象之间的关系。      BeanFactory 支持两个对象模型。    单态模型:提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。    原型模型:确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。

    5.ApplicationContext: org.springframework.context.ApplicationContext由BeanFactory接口派生扩展而来,因而提供了 BeanFactory所有的功能。   在构建J2EE应用时,使用ApplicationContext将是更好的选择。      context包还提供了以下的功能:    MessageSource, 提供国际化的消息访问。    资源访问,如URL和文件。    事件传播,实现了ApplicationListener接口的bean。    载入多个(有继承关系)上下文 。

    6.配置元数据: Spring IoC容器将读取配置元数据;并通过它对应用中各个对象进行实例化、配置以及组装。      基于XML的元数据是最常用到的配置元数据格式。然而,它并不是唯一的描述格式。Spring IoC容器在这一点上是完全开放的。   当使用基于XML的配置元数据时,将在顶层的<beans/>元素中配置一个或多个<bean/>元素。      bean定义与应用程序中实际使用的对象一一对应。通常情况下bean的定义包括: 服务层对象、数据访问层对象(DAO)、类似Struts Action的表示层对象、Hibernate SessionFactory对象、JMS Queue对象等等。

    7.实例化IoC容器(基于XML的元数据):通过ClassPathXmlApplicationContext类加载一个或多个XML文档来实例化BeanFactory接口的实现扩展 ApplicationContext类。  要从 BeanFactory 检索 bean,只需调用 getBean() 方法,传入将要检索的 bean 的名称即可。

    Spring入门简单实例:

    1.创建项目(web项目和普通java项目都可以),然后导入spring 开发包。

    2.创建三个类代码如下:

    代码1: 普通java功能类:

    public class Speak
    {

      public void sayHello()
      {
       System.out.println("hello");
      }
    }

    代码2:Spring bean类:

    public class Greeting {
     public Speak s;
     
     public Greeting()
     {}
     
     public Greeting(Speak s)
     {
      this.s=s;
     }
     public void greet()
     {
      s.sayHello();
     }
     public Speak getS() {
      return s;
     }
     public void setS(Speak s) {
      this.s = s;
     }
    }

    代码3:main方法
    public class Test {
     public static void main(String[] args)
     {
      ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
      Greeting greet=(Greeting)context.getBean("Greeting");
      greet.greet();
     }

    }

    代码4: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-2.5.xsd">
     <bean id="Speak" class="bean.Speak"></bean>
     <bean id="Greeting" class="bean.Greeting">
     <property name="s">
     <ref bean="Speak" />
     </property>
     </bean>
    </beans>


     


     

  • 相关阅读:
    递归函数及Java范例
    笔记本的硬盘坏了
    “References to generic type List should be parameterized”
    配置管理软件(configuration management software)介绍
    WinCE文件目录定制及内存调整
    使用Silverlight for Embedded开发绚丽的界面(3)
    wince国际化语言支持
    Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
    WinCE Heartbeat Message的实现
    使用Silverlight for Embedded开发绚丽的界面(2)
  • 原文地址:https://www.cnblogs.com/michaelShao/p/1696818.html
Copyright © 2011-2022 走看看