zoukankan      html  css  js  c++  java
  • 学习Spring IoC

       1:Spring IoC:

            Spring IoC是实现Object依赖关系之间松散耦合的机制。要在运行时实现对象的松散耦合和动态绑定,对象依赖项将由其他汇编器对象注入。Spring IoC容器是将依赖项注入对象并使其可供我们使用的程序。我们已经了解了如何使用Spring Dependency Injection在我们的应用程序中实现IoC。

    Spring IoC容器类的一部分org.springframework.beans和org.springframework.context包。Spring IoC容器为我们提供了解耦对象依赖关系的不同方法。

    BeanFactory是Spring IoC容器的根接口。ApplicationContext是接口的子接口BeanFactory,提供Spring AOP功能,i18n等。

     

    一些有用的子接口ApplicationContext是ConfigurableApplicationContext和WebApplicationContext。Spring Framework提供了许多有用的ApplicationContext实现类,我们可以使用它们来获取spring上下文,然后是Spring Bean。

    2:我们使用的一些有用的ApplicationContext实现是;

          AnnotationConfigApplicationContext:如果我们在独立的Java应用程序中使用Spring并使用Configuration的注释,那么我们可以使用它来初始化容器并获取bean对象。
    ClassPathXmlApplicationContext:如果我们在独立应用程序中有spring bean配置xml文件,那么我们可以使用这个类来加载文件并获取容器对象。
    FileSystemXmlApplicationContext:这类似于ClassPathXmlApplicationContext,除了可以从文件系统中的任何位置加载xml配置文件。
    Web应用程序的AnnotationConfigWebApplicationContext和XmlWebApplicationContext。
    通常,如果您正在使用Spring MVC应用程序并且您的应用程序配置为使用Spring Framework,则Spring IoC容器会在应用程序启动时初始化,并且在请求Bean时,会自动注入依赖项。

    但是,对于独立应用程序,您需要在应用程序中的某个位置初始化容器,然后使用它来获取spring bean。


    Spring Bean并不特别,我们通过Spring容器初始化的Spring框架中的任何对象都称为Spring Bean。任何普通的Java POJO类都可以是Spring Bean,如果它被配置为通过容器通过提供配置元数据信息来初始化。


    3:Spring Bean Scopes
    为Spring Beans定义了五个范围。

    singleton - 只为每个容器创建一个bean实例。这是spring bean的默认范围。使用此范围时,请确保bean没有共享实例变量,否则可能导致数据不一致问题。
    prototype - 每次请求bean时都会创建一个新实例。
    请求 - 这与原型范围相同,但它意味着用于Web应用程序。将为每个HTTP请求创建一个新的bean实例。
    session - 将为容器的每个HTTP会话创建一个新bean。
    global-session - 用于为Portlet应用程序创建全局会话Bean。
    Spring Framework是可扩展的,我们也可以创建自己的范围。但是,大多数情况下,我们对框架提供的范围很好。


    4:Spring Bean配置
    Spring Framework提供了三种配置应用程序中使用的bean的方法。

    基于注释的配置 - 使用@Service或@Component注释。可以使用@Scope注释提供范围详细信息。
    基于XML的配置 - 通过创建Spring配置XML文件来配置bean。如果您使用的是Spring MVC框架,则可以通过在web.xml文件中编写一些样板代码来自动加载基于xml的配置。
    基于Java的配置 - 从Spring 3.0开始,我们可以使用java程序配置Spring bean。用于基于Java的配置的一些重要注释是@Configuration,@ ComponentScan和@Bean。

    Spring IoC和Spring Bean示例项目
    让我们看一下Spring IoC容器和Spring Bean配置的不同方面,以及一个简单的Spring项目。

    在我的例子中,我在Spring Tool Suite中创建了一个Spring MVC项目。如果您不熟悉Spring Tool Suite和Spring MVC,请阅读Spring Tool Suite的Spring MVC Tutorial。

    最终的项目结构如下图所示。

    基于XML的Spring Bean配置

    MyBean是一个简单的Java POJO类。

     

    Spring配置XML文件

    servlet-context.xml代码:

     

    基于注释的Spring Bean配置

     

    Spring IoC控制器类

    HomeController类将处理应用程序主页的HTTP请求。我们将通过WebApplicationContext容器将Spring bean注入此控制器类

    部署描述符

    我们需要为Spring Framework配置我们的应用程序,以便加载配置元数据并初始化上下文。

     

     

     

     

  • 相关阅读:
    软件测试流程
    Python2 RF(3.0.4)与Python3 RF(3.1.2)区别
    Ubuntu Install RobotFramework with Python3
    Beta测试与Alpha测试有什么区别
    网络协议,如TCP/UDP的区别?
    缺陷相关知识
    linux_machine-id
    monkey自定义脚本实践
    Monkey事件
    Linux虚拟机fdisk分区
  • 原文地址:https://www.cnblogs.com/hbnp/p/12205229.html
Copyright © 2011-2022 走看看