zoukankan      html  css  js  c++  java
  • Intellij+Spring学习(一)

      Spring 是一个开源框架.Spring 为简化企业级应用开发而生,使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能.Spring 是一个 IOC(DI) 和 AOP 容器框架。具有以下特点:

    • 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API
    • 依赖注入(DI --- dependency injection、IOC)
    • 面向切面编程(AOP --- aspect oriented programming)
    • 容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期
    • 框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象
    –一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC)
          Intellij对Spring集成度比较好,如果是普通的Spring工程,只需要新建一个Spring项目,不要选模版即可。
          Spring 提供了两种类型的 IOC 容器实现.
    • BeanFactory: IOC 容器的基本实现.
    • ApplicationContext: 提供了更多的高级特性. 是 BeanFactory 的子接口.
    • BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身;ApplicationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合都直接使用 ApplicationContext 而非底层的 BeanFactory
    • 无论使用何种方式, 配置文件时相同的
        Spring 支持 3 种依赖注入的方式
    • 属性注入
    • 构造器注入
    • 工厂方法注入(很少使用,不推荐)
         配置 bean
    • 配置形式:基于 XML 文件的方式;基于注解的方式
    • Bean 的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean
    • IOC 容器 BeanFactory & ApplicationContext 概述
    • 依赖注入的方式:属性注入;构造器注入
    • 注入属性值细节
    • 自动转配
    • bean 之间的关系:继承;依赖
    • bean 的作用域:singleton;prototype;WEB 环境作用域
    • 使用外部属性文件
    • spEL
    • IOC 容器中 Bean 的生命周期
    • Spring 4.x 新特性:泛型依赖注入
       XML 配置里的 Bean 自动装配
    • byType(根据类型自动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这种情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不能执行自动装配.
    • byName(根据名称自动装配): 必须将目标 Bean 的名称和属性名设置的完全相同.
    • constructor(通过构造器自动装配): 当 Bean 中存在多个构造器时, 此种自动装配方式将会很复杂. 不推荐使用
        特定组件包括:
    • @Component: 基本注解, 标识了一个受 Spring 管理的组件
    • @Respository: 标识持久层组件
    • @Service: 标识服务层(业务层)组件
    • @Controller: 标识表现层组件

        在 classpath 中扫描组件,当在组件类上使用了特定的注解之后, 还需要在 Spring 的配置文件中声明 <context:component-scan> :base-package 属性指定一个需要扫描的基类包,Spring 容器将会扫描这个基类包里及其子包中的所有类.当需要扫描多个包时, 可以使用逗号分隔.如果仅希望扫描特定的类而非基包下的所有类,可使用 resource-pattern 属性过滤特定的类。<context:component-scan> 元素还会自动注册 AutowiredAnnotationBeanPostProcessor 实例, 该实例可以自动装配具有 @Autowired 和 @Resource 、@Inject注解的属性。

        

  • 相关阅读:
    离线计算框架 MapReduce
    Hadoop概述
    Linux之rpm/yum
    Linux之磁盘分区
    利用CMD合并多个VOB文件
    android中的simple_list_item
    jquery中的跨域-jsonp格式
    安卓代码中设置ImageView属性
    Android中常用的Adapter的种类和用法
    C#导入excel文件到oracle的方法
  • 原文地址:https://www.cnblogs.com/JeromeHuang/p/4188112.html
Copyright © 2011-2022 走看看