0
我對SO非常陌生,我正在開發根據環境(dev,prod,test)加載環境配置和屬性的任務,我已使用<beans profile="profile.name">
成功實現了DAO級別的數據庫配置。在前端我必須根據環境獲取屬性文件,所以我有不同的文件。叫我曾嘗試下面的代碼:@ wicket項目中的@component spring註釋?
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
測試工作完美
@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());
}
}
,當我試圖注入PropertiesUtility類在檢票頁。我是沒有得到物業的價值。因爲它沒有被注入。我知道在門票@SpringBean
,但即使它不起作用。
是否有無價值的任何替代歡迎。
爲您進一步的我也跟着鏈接
如何在Wicket中注入PropertiesUtility?您錯過了向我們展示最重要的部分。 –
除了Martin-g提出的問題之外,我還建議運行一些Spring Test(例如使用TESTNG)和AutoWire組件,以查看您是否實際從Spring組件本身獲取沒有UI的文件路徑。 – Mihir
@ martin-g我已經嘗試過使用Autowired和SpringBean,但也不能正常工作 –