我正在使用弹簧靴,可以访问keycloak。我需要将keycloak配置保留在keycloak.json文件中我想使用PropertySource注释从json获取值...
我的application.yml
keycloak:
configurationFile: "classpath:keycloak.json"
我的keycloak.json
{
"realm": "MyRealm",
"auth-server-url": "https://keycloakURL",
....
}
我的班级
@Controller
@Configuration
@PropertySource("classpath:keycloak.json")
public class MyClass{
@Autowired
private Environment env;
@RequestMapping(value = "/mycontroller", method = RequestMethod.GET)
public String method(Model model) {
env.getProperty("auth-server-url")
}
问题是我为这个环境变量
得到了null答案 0 :(得分:0)
如果env为null,可能是导入问题。
org.springframework.core.env.Environment
否则,如果从环境中查询的值为空。在Spring启动应用程序中,JSON文件作为属性的配置完全不同,请参考Example 1, Example 2
答案 1 :(得分:0)
我知道使用@Value
有点劝阻env.getProperty()
,但我发现前者更加可靠和直接。在mkyong's great tutorial
@Value
PropertySource
的正确方法
要在@Values中解析$ {},您必须注册静态 XML或注释中的PropertySourcesPlaceholderConfigurer 配置文件。
答案 2 :(得分:0)
现在不可能,但我们有一张票https://issues.jboss.org/browse/KEYCLOAK-4942