如果您对使用SpringIoC设置枚举值和spring枚举参数感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解使用SpringIoC设置枚举值的各种细节,并对spring枚举参数进行深入的分析,
如果您对使用Spring IoC设置枚举值和spring 枚举参数感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解使用Spring IoC设置枚举值的各种细节,并对spring 枚举参数进行深入的分析,此外还有关于java day57【 Spring 概述 、 IoC 的概念和作用、使用 spring 的 IOC 解决程序耦合 】、java – Spring从属性文件中获取枚举值、java – 使用spring将枚举的值注入属性、java – 使用spring数据存储库和mongo db设置spring应用程序的实用技巧。
本文目录一览:- 使用Spring IoC设置枚举值(spring 枚举参数)
- java day57【 Spring 概述 、 IoC 的概念和作用、使用 spring 的 IOC 解决程序耦合 】
- java – Spring从属性文件中获取枚举值
- java – 使用spring将枚举的值注入属性
- java – 使用spring数据存储库和mongo db设置spring应用程序
使用Spring IoC设置枚举值(spring 枚举参数)
有没有办法在构造时通过Spring IoC设置此类枚举值?
我想做的是在类加载时注入在下面的代码片段中硬编码的值:
public enum Car{ NANO ("Very Cheap", "India"), MERCEDES ("Expensive", "Germany"), FERRARI ("Very Expensive", "Italy"); public final String cost; public final String madeIn; Car(String cost, String madeIn) { this.cost= cost; this.madeIn= madeIn; }}
假设该应用程序必须部署在Nanos“几乎免费”的德国或法拉利“负担不起”的印度。在这两个国家中,只有三辆汽车(确定性集合),不多不少,因此是一个枚举,但它们的“内部”值可能有所不同。因此,这是不可变的上下文初始化的情况。
答案1
小编典典你是要设置enum
自己吗?
我认为那是不可能的。你不能实例化枚举,因为它们具有static
本质。因此,我认为Spring IoC
也无法创建 enums
。
另一方面,如果你需要使用进行初始化,enum
请查阅Spring IoC
章节。(搜索枚举)有一个简单的示例可以使用。
java day57【 Spring 概述 、 IoC 的概念和作用、使用 spring 的 IOC 解决程序耦合 】
第1章 Spring 概述
1.1 spring 概述[了解]
1.1.1 spring 是什么
1.1.2 Spring 的发展历程
1.1.3 spring 的优势
1.1.4 spring 的体系结构
第2章 IoC 的概念和作用
2.1 程序的耦合和解耦[理解]
2.1.1 什么是程序的耦合
2.1.2 解决程序耦合的思路
2.1.3 工厂模式解耦
2.1.4 控制反转-Inversion Of Control
第3章 使用 spring 的 IOC 解决程序耦合
3.1 案例的前期准备[会用]
3.1.1 准备 spring 的开发包
3.1.2 创建业务层接口和实现类
3.1.3 创建持久层接口和实现类
3.2 基于 XML 的配置(入门案例)[掌握]
3.2.1 第一步:拷贝必备的 jar 包到工程的 lib 目录中
3.2.2 第二步:在类的根路径下创建一个任意名称的 xml 文件(不能是中 文)
3.2.3 第三步:让 spring 管理资源,在配置文件中配置 service 和 dao
3.2.4 测试配置是否成功
3.3Spring 基于 XML 的 IOC 细节[掌握]
3.3.1 spring 中工厂的类结构图
3.3.1.1 BeanFactory 和 ApplicationContext 的区别
3.3.1.2 ApplicationContext 接口的实现类
3.3.2 IOC 中 bean 标签和管理对象细节
3.3.2.1 bean 标签
3.3.2.2 bean 的作用范围和生命周期
3.3.2.3 实例化 Bean 的三种方式
3.3.3 spring 的依赖注入
3.3.3.1 依赖注入的概念
3.3.3.2 构造函数注入
3.3.3.3 set 方法注入
3.3.3.4 使用 p 名称空间注入数据(本质还是调用 set 方法)
3.3.3.5 注入集合属性
第4章 附录
4.1Spring 配置文件中提示的配置[会用]
java – Spring从属性文件中获取枚举值
我有一个枚举,其中值以utf8格式呈现.因此我在jsp视图中遇到了一些编码问题.有没有办法从我的messages.properties文件中获取值.如果我的属性文件中有以下行,该怎么办:
shop.first=Первый
shop.second=Второй
shop.third=Третий
我怎么能在枚举中注入它们?
public enum ShopType {
FirsT("Первый"),SECOND("Второй"),THIRD("Третий");
private String label;
ShopType(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}
>所有本地化字符串都可以存储在一个.properties文件中,这样可以消除java类中的所有编码问题;
>它使代码完全可本地化(事实上,它将是每个语言环境一个.properties文件).
这样,你的枚举将如下所示:
public enum ShopType {
FirsT("shop.first"),SECOND("shop.second"),THIRD("shop.third");
private final String key;
private ShopType(String key) {
this.key = key;
}
public String getKey() {
return key;
}
}
(我删除了setter,因为枚举属性应该始终是只读的.无论如何,它不再是必需的.)
您的.properties文件保持不变.
现在是获得本地化商店名称的时候了……
ResourceBundle rb = ResourceBundle.getBundle("shops");
String first = rb.getString(ShopType.FirsT.getKey()); // Первый
希望这会有所帮助……
杰夫
java – 使用spring将枚举的值注入属性
我有一个类似于下面的枚举
public enum MyEnum {
ABC("some string"),DEF("some string"),GHI("another string");
String value;
private MyEnum(String value) {
this.value = value;
}
public String value() {
return this.value;
}}
我想创建一个util:map,使用枚举的值作为键而不是枚举本身.所以地图看起来像这样:
"some string" -> "mapped output 1"
"another string" -> "mapped output 2"
我知道我可以使用util:constant来获取枚举,但我需要enum所代表的值.
所以我的配置文件在这一刻看起来像这样:
irstKey" static-field="package.MyEnum.ABC"/>
irstKey" value="mapped output 1" />
有没有办法可以获得.value()甚至可以访问value属性来使用它作为密钥?
我试图将键类型声明为字符串,希望spring能够解决这个问题,但它似乎忽略了这一点.
使用spring 2.5.1,我无法修改枚举
最佳答案
如果您无法访问表达式语言,则必须回退到显式的MethodInvokingfactorybean
fig.MethodInvokingfactorybean">
etobject">getmethod" value="value" />
您可以使用抽象父bean定义缩短重复XML.
fig.MethodInvokingfactorybean">
getmethod" value="value" />
irstKey" parent="enumValue">
etobject">
您也可以跳过MethodInvokingfactorybean并使用
irstKey" factory-bean="MyEnum_ABC" factory-method="value" />
但这意味着为每个枚举常量声明单独的顶级bean以及它们的value(),而使用MIFB允许您使用匿名内部bean.
java – 使用spring数据存储库和mongo db设置spring应用程序
在application-context.xml中定义mongo存储库时,我遇到了一个问题
以下是我在xml中得到的错误
Error occured processing XML tried to access method org.springframework.context.annotation.AnnotationConfigUtils.processCommonDeFinitionAnnotations
(Lorg/springframework/beans/factory/annotation/AnnotatedBeanDeFinition;)V from class org.springframework.data.repository.config.RepositoryComponentProvider'. See Error Log for more details servlet-context.xml /master/WebContent/WEB-INF/config line 24 Spring Beans Problem
我附上了env的截图供参考.
我正在使用eclipse Kepler版本和pom属性File就是这样的
Spring数据公共版本是1.7
spring data mongo db 1.4版.
当我打开上下文xml时,我在eclipse项目中看到了错误.
有趣的是,我有另一个项目运作良好.唯一的区别是它没有弹簧MVC和杰克逊二进制文件,否则它的类似项目.
异常堆栈跟踪:
!ENTRY org.springframework.ide.eclipse.beans.core 1 0 2014-03-01
00:04:11.839 !MESSAGE Error occured processing
‘/master/WebContent/WEB-INF/config/servlet-context.xml’ !STACK 0
java.lang.IllegalAccessError: tried to access method
org.springframework.context.annotation.AnnotationConfigUtils.processCommonDeFinitionAnnotations(Lorg/springframework/beans/factory/annotation/AnnotatedBeanDeFinition;)V
from class
org.springframework.data.repository.config.RepositoryComponentProvider
at
org.springframework.data.repository.config.RepositoryComponentProvider.findCandidateComponents(RepositoryComponentProvider.java:121)
at
org.springframework.data.repository.config.RepositoryConfigurationSourceSupport.getCandidates(RepositoryConfigurationSourceSupport.java:69)
at
org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport.getRepositoryConfigurations(RepositoryConfigurationExtensionSupport.java:54)
at
org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn(RepositoryConfigurationDelegate.java:88)
at
org.springframework.data.repository.config.RepositoryBeanDeFinitionParser.parse(RepositoryBeanDeFinitionParser.java:67)
at
org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
at
org.springframework.ide.eclipse.beans.core.internal.model.namespaces.DelegatingNamespaceHandlerResolver$ElementTrackingNamespaceHandler.parse(DelegatingNamespaceHandlerResolver.java:177)
at
org.springframework.beans.factory.xml.BeanDeFinitionParserDelegate.parseCustomElement(BeanDeFinitionParserDelegate.java:1427)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ErrorSuppressingBeanDeFinitionParserDelegate.parseCustomElement(BeansConfig.java:1400)
at
org.springframework.beans.factory.xml.BeanDeFinitionParserDelegate.parseCustomElement(BeanDeFinitionParserDelegate.java:1417)
at
org.springframework.beans.factory.xml.DefaultBeanDeFinitionDocumentReader.parseBeanDeFinitions(DefaultBeanDeFinitionDocumentReader.java:187)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ToolingFriendlyBeanDeFinitionDocumentReader.doRegisterBeanDeFinitions(BeansConfig.java:1330)
at
org.springframework.beans.factory.xml.DefaultBeanDeFinitionDocumentReader.registerBeanDeFinitions(DefaultBeanDeFinitionDocumentReader.java:110)
at
org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.registerBeanDeFinitions(XmlBeanDeFinitionReader.java:494)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.registerBeanDeFinitions(BeansConfig.java:402)
at
org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.doLoadBeanDeFinitions(XmlBeanDeFinitionReader.java:391)
at
org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.loadBeanDeFinitions(XmlBeanDeFinitionReader.java:335)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.loadBeanDeFinitions(BeansConfig.java:388)
at
org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.loadBeanDeFinitions(XmlBeanDeFinitionReader.java:303)
at
servlet context.xml
spring-mongo.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
总结
以上是小编为你收集整理的java – 使用spring数据存储库和mongo db设置spring应用程序全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
关于使用Spring IoC设置枚举值和spring 枚举参数的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于java day57【 Spring 概述 、 IoC 的概念和作用、使用 spring 的 IOC 解决程序耦合 】、java – Spring从属性文件中获取枚举值、java – 使用spring将枚举的值注入属性、java – 使用spring数据存储库和mongo db设置spring应用程序等相关知识的信息别忘了在本站进行查找喔。
本文标签: