📜  Spring - 实用程序:常量

📅  最后修改于: 2022-05-13 01:55:18.175000             🧑  作者: Mango

Spring - 实用程序:常量

Spring 2.0 版本引入了基于 XML Schema 的配置。它使 Spring XML 配置文件更易于阅读,除此之外,它还允许开发人员表达 bean 定义的意图。这些新的自定义标签最适合基础设施或集成 bean:例如,AOP、集合、事务、与 Mule 等 3rd 方框架的集成等,而现有的 bean 标签最适合特定于应用程序的 bean,例如DAO、服务层对象、验证器等。主要是用新的 XML Schema 样式替换旧的 DTD 样式。下面是旧的 DTD – 样式及其新的等效 XML Schema 样式。

DTD——风格:





XML Schema – 风格:




这个 Spring XML 配置片段是样板代码,我们可以复制并粘贴到我们的 XML 中,然后像往常一样将 定义插入其中。

'util' 模式

顾名思义,util 标签处理常见的实用程序配置问题,例如配置集合、引用常量等。要在 util 模式中使用标签,我们需要在 Spring XML 配置的顶部包含以下序言文件;这样 util 命名空间中的标签就可以在 XML 文件中使用。






''标签在 'util' 模式中可用。它可用于声明引用一个类的最终静态字段的 bean。我们将使用 'util:constant' 标签构建一个简单的 Spring 应用程序。

项目结构:

  1. 创建一个新的Java项目——Spring_Application。
  2. 将所有必需的 Spring Jar 文件添加到项目中。
  3. 创建一个 bean 类——InfoBean。 Java,定义所有属性和常量值以及这些属性的getter/setter方法。
  4. 创建一个包装类——InfoWrapper。 Java,用于包装 InfoBean。 Java常量。
  5. 为 bean 配置创建 XML 配置文件 - applicationContext.xml。
  6. 创建主类——InfoMain。 Java,用于定义应用程序上下文容器、获取 bean 对象并运行项目。
  7. 运行应用程序以获取输出。

创建项目、bean 类和 XML 配置文件后,项目结构如下。

项目结构

项目结构

spring jar 文件可以从 Maven Repository 下载。

要创建的文件:

信息豆。Java:

Java
package com.geeks.beans;
  
public class InfoBean {
      
    public static final InfoBean JAVA = new InfoBean("Java","Eclipse");
    public static final InfoBean PYTHON = new InfoBean("Python","PyCharm");
    private String language;
    private String ide;
      
    public InfoBean(String language, String ide) {
        this.language = language;
        this.ide = ide;
    }
  
    public String getLanguage() {
        return language;
    }
  
    public void setLanguage(String language) {
        this.language = language;
    }
  
    public String getIde() {
        return ide;
    }
  
    public void setIde(String ide) {
        this.ide = ide;
    }
  
    public static InfoBean getJava() {
        return JAVA;
    }
  
    public static InfoBean getPython() {
        return PYTHON;
    }
  
    @Override
    public String toString() {
        return "Coding Language = " + language + ", IDE = " + ide ;
    }
      
}


Java
package com.geeks.beans;
  
public class InfoWrapper {
      
    private InfoBean java;
    private InfoBean python;
      
    public InfoBean getJava() {
        return java;
    }
    public void setJava(InfoBean java) {
        this.java = java;
    }
    public InfoBean getPython() {
        return python;
    }
    public void setPython(InfoBean python) {
        this.python = python;
    }
  
}


XML


  
    
    
  
    
  
    
        
        
    
  


Java
package com.geeks.beans;
  
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
public class InfoMain {
  
    @SuppressWarnings("resource")
    public static void main(String[] args) {
  
        ApplicationContext context = new ClassPathXmlApplicationContext("com/geeks/resources/applicationContext.xml");
        InfoWrapper info = (InfoWrapper) context.getBean("infoWrapper");
        System.out.println(info.getJava());
        System.out.println(info.getPython());
    }
  
}


  • 在 bean 类中,我们将属性 'language' 和 'ide' 定义为 String 类型。
  • 我们声明了两个静态最终常量“Java”和“PYTHON”。
  • 生成所有属性的 getter/setter 方法。
  • 覆盖“toString()”方法。

信息包装器。Java:

Java

package com.geeks.beans;
  
public class InfoWrapper {
      
    private InfoBean java;
    private InfoBean python;
      
    public InfoBean getJava() {
        return java;
    }
    public void setJava(InfoBean java) {
        this.java = java;
    }
    public InfoBean getPython() {
        return python;
    }
    public void setPython(InfoBean python) {
        this.python = python;
    }
  
}

用于包装“InfoBean”属性及其 getter/setter 方法的包装类。

应用程序上下文.xml:

XML



  
    
    
  
    
  
    
        
        
    
  

  • 我们将 util:constant 标签用于常量字段。
  • 为 InfoWrapper 类创建 bean 定义。
  • 包装类中属性的引用指向常量字段。

信息主。Java:

Java

package com.geeks.beans;
  
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
public class InfoMain {
  
    @SuppressWarnings("resource")
    public static void main(String[] args) {
  
        ApplicationContext context = new ClassPathXmlApplicationContext("com/geeks/resources/applicationContext.xml");
        InfoWrapper info = (InfoWrapper) context.getBean("infoWrapper");
        System.out.println(info.getJava());
        System.out.println(info.getPython());
    }
  
}

使用“getBean()”方法获取容器创建的“infoWrapper”bean 并显示值的主类。

输出:

将“InfoMain”类作为Java项目运行以获得以下输出。

输出

输出