gpt4 book ai didi

java - wicket 项目中的 @component spring 注释?

转载 作者:行者123 更新时间:2023-12-01 10:34:08 24 4
gpt4 key购买 nike

我对 SO 很陌生,我正在研究根据环境(如(dev、prod、test))加载环境配置和属性的任务,我已经通过使用 <beans profile="profile.name"> 成功实现了 DAO 级别的数据库配置。 。在前端,我必须根据环境获取属性文件,所以我有不同的文件。调用我已经尝试过以下代码:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;


@Component
public class PropertiesUtility {
@Value("${mount.images.webpath}")
private String imagePath;

public String getImagePath() {
return imagePath;
}

public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}

@Override
public String toString() {
return "PropertiesUtility{" +
"imagePath='" + imagePath + '\'' +
'}';
}
}

我的 context.xml 配置:

<context:annotation-config/>
<beans profile="dev">
<context:property-placeholder location="classpath:properties/pharmisa_web_conf.properties"
ignore-unresolvable="true" />

</beans>
<beans profile="test">
<context:property-placeholder location="classpath:properties/pharmisa_web_test_conf.properties"
ignore-unresolvable="true" />

</beans>

调用 PropertiesUtility:

public class URLUtility {
@SpringBean //even @Autowired also not working
static PropertiesUtility propertiesUtility;
public static String getCompanyLogoUrl(int id) {
StringBuffer sb = new StringBuffer(getImagePath());
boolean isEndWithSlash=PharmisaStringUtils.endsWith(getImagePath(),"/");
if (!isEndWithSlash){
sb.append("/");
}
sb.append(id);
sb.append("/");
return sb.toString();
}

private static final String getImagePath() {

return propertiesUtility.getImagePath().trim();
}

}

SpringJunitTest

Test working perfectly

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/pharmisa_web-context.xml"})
@ActiveProfiles(profiles = "test")
public class CompanyServiceImplTest {

@Autowired
PropertiesUtility propertiUtility;

@Test
public void testAppProperties() {
System.out.println(propertiUtility.getImagePath());
}

}

当我尝试在 wicket 页面中注入(inject) PropertiesUtility 类时,我没有获取属性的值。因为它没有被注入(inject)。我知道@SpringBean在 wicket ,但即使它不起作用。

有没有办法获得任何替代方案欢迎的值(value)。

为了您的进一步了解,我已点击链接

http://examples.javacodegeeks.com/enterprise-java/spring/load-environment-configurations-and-properties-with-spring-example/

最佳答案

URLUtility如果你想要的话,应该是 Spring bean @Component@Autowire去工作。

@SrpingBean仅在 Wicket 组件中自动工作。在任何其他情况下,您都需要使用 Injector.get().inject(this) 明确“请求注入(inject)” .

关于java - wicket 项目中的 @component spring 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34900601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com