6、Spring-XML配置

一、概要

配置方式

Spring支持三种方式配置Bean,Spring1.0仅支持基于XML的配置,Spring2.0新增基于注解配置的支持,Spring3.0新增基于Java类配置的支持,Spring4.0则新增给予Groovy动态语言配置的支持。

  1. Explicit configuration in XML:显示的XML配置
  2. Explicit configuration in Java:显示的JavaConfig,基于java类配置
  3. Implicit bean discovery and automatic wiring:隐式的bean扫描,基于java注解配置,自动注入
  4. Explicit configuration in Groovy DSL:Groovy动态语言配置
    在实际开发中前面三种方式都会用到,后面一种相对用的比较少,因为需要学习Groovy语言

使用原则

  1. 基于注解自动注入(优先使用)
    优点:在class文件中,降低维护成本。不需要第三方解析工具,利用java反射机制。编辑期就可以检验正确性,提高开发效率。
    缺点:如果需要对注解进行修改,那么要重新编译整个工程。Bean之间的关系不好把控。
  2. Java 接口和类中配置实现配置(Spring Boot的推荐方式)
    同隐式的bean扫描,基于注解
  3. XML配置(第三方框架,无法修改源代码的情况下)
    优点:简单易懂,配置文件修改不需要重新编译,扩展起来相对容易,比较典型的应用场景就是第三方的库中,一般都采用此种配置方式
    缺点:配置文件过多的时候难以管理

二、XML配置

使用 XML 装配 Bean 需要定义对应的 XML,这里需要引入对应的 XML 模式(XSD)文件,这些文件会定义配置 Spring Bean 的一些元素,当我们在 IDEA 中创建 XML 文件时,会有友好的提示

三、通过XML配置加载Bean

整体结构


    
       
    
    
    

配置文件



    
    
    
    
    
    
    
    
        
    
    
    
    
    

四、bean配置说明

id

  1. 说明
    • Bean 的名称,在 IOC 容器中必须是唯一的 , 代码中通过BeanFactory获取JavaBean实例时需以此作为索引名称
    • 命名必须以字母开头,可以使用字母、数字、连字符、下划线、句号、冒号、 /*
    • 若id没有指定,Spring 自动将全限定名#{number}作为 Bean 的名字,com.wener.example.bean.User#0
    • id 可以指定多个名字,名字之间可用逗号、分号、或空格分隔
  2. 栗子
    // java 代码
    public class User {
        private String name;
        private  String password;
    }
    
    
     
    

class

  1. 说明
    一个类的全限定名(类的完整路径)
  2. 栗子
    
     
    

lazy-init

  1. 说明
    默认false,懒加载,让Spring容器在Bean首次用到时创建Bean实例,而不是在应用一启动就创建
  2. 栗子
     
    

你可能感兴趣的:(6、Spring-XML配置)