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