2011-08-27 65 views
1

在Spring或java中是否存在转换给定字符串的注释?更改字符串值的注释

例如,Spring有注解@Value(“some string”)。如果不是为参数/实例变量分配“一些字符串”,我想要分配一个该字符串的变换值。假设这个字符串是“foo”。每次我看到这个注解时,我都希望返回的字符串是“bar:foo”而不是foo。我所需要的就是能够对参数或实例变量进行注释,并自动进行该转换。也许甚至可能是一个带有类的注释以及字符串,使得类可以作为给定字符串的变换器。

有没有在春季或java的注释这样做,如果不是什么将是实施这样的事情的最佳方式?

由于 劳伦

+0

我不明白这个问题

@Value("#{T(fully.qualified.package.name.to.class).getFooString()}") public void setBar(String value){ this.bar = value; } 

...也许你可以提供一些概述你的需求的伪代码? – home

回答

0

@Value的注释弹簧是比恒定以外的值分配给属性,使用Spring表达式语言很有用。例如,从属性文件读取的值。如果它所做的只是分配一个常量,那么也可以使用private String foo = "bar";

因此,您可以使用它从某些配置文件或系统属性中获取所需的值。

如果你想要应用一些转换算法到一个领域,我真的看不到使用注释的重点。只需调用Java方法:

@Value("foo") // or some EL expression which evaluates to "foo" 
public void setBar(String value) { 
    this.bar = someStringTransformer.transform(value); 
} 

这似乎很容易阅读,测试和维护。

1

您可以在@Value注释中使用Spring表达式语言。

这是你如何使用它的静态方法:如果你有一个bean定义之前,那么你可以简单地使用 @Value("#{bean.method()}")@Value("#{bean.property}")