我想让Spring分配一个属性值。
example.property.foo
我想说我想在几个不同的地方引用public class Foobar {
public static final String FOO_PROPERTY_FLAG = "example.property.foo";
}
,所以我宁愿将旗帜作为常数分配给Foobar:
example.property.foo=whatever
@TestPropertySource
的设置发生在其他地方(作为系统属性,或在FOO_PROPERTY_FLAG
中)。
如何在注释中引用@Value("${" + FOO_PROPERTY_FLAG + ":bar}")
?这有效:
"#{}"
但它有点难看。我能否以某种方式使用@Value("${#{FOO_PROPERTY_FLAG}:bar}") // doesn't work; value is never injected
表达式语法?
| ID | Item | Item Characteristic 1 | Item Characteristic 2 | Other Fields |
|:--:|:------:|:---------------------:|:---------------------:|--------------|
| 22 | Code 1 | Blue | 48 | … |
| 22 | Code 2 | Red | 50 | … |
| 22 | Code 3 | Green | 99 | … |
答案 0 :(得分:2)
您可以执行以下操作:
import tkinter as tk
import tkinter.simpledialog
root = tk.Tk()
def open_sublevel():
tl = tk.Toplevel(root)
tl.grab_set()
def ask():
print(tk.simpledialog.askstring("askstring", "askstring"))
tl.grab_set()
tk.Button(tl, text="ask", command=ask).pack()
print("release")
tk.Button(root, text="asdf", command=open_sublevel).pack()
tk.mainloop()
重要的是指定包和类。否则spring将尝试在public static final String KEY = "propertyName";
@Value("#{T(a.b.c.package.MyConstants).KEY}")
中查找实际执行SpEL的常量
答案 1 :(得分:0)
private @Value("${propertyName}") String propertyField;
没有吸气剂或者叮当声!
通过config:
加载属性<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="classpath:propertyFile.properties" name="propertiesBean"/>
还有完全非Xml的版本:
@PropertySource("classpath:propertyFile.properties")
public class AppConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
确保并添加名称空间URI xmlns:p="springframework.org/schema/p"
;使用p:
前缀属性