wicket项目中的@component spring注释?

时间:2016-01-20 12:52:09

标签: java spring wicket-1.6

我是SO的新手,我已经开始根据环境加载环境配置和属性的任务(如dev,prod,test),我已经使用{{1}成功实现了DAO级别的数据库配置}}。在前端,我必须根据环境获取属性文件,所以我有不同的文件。打电话给我,我尝试了下面的代码:

<beans profile="profile.name">

我的context.xml配置:

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 + '\'' +
                '}';
    }
}

调用PropertiesUtility:

<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>

SpringJunitTest

  

测试工作完美

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();
    }

}

当我试图在wicket页面中注入PropertiesUtility类时。我没有得到属性的值。因为它没有注射。我知道wicket中的@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()); } } ,但即使它不起作用。

无论如何都要获得任何替代欢迎的价值。

为了您的进一步,我已经按照链接

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

1 个答案:

答案 0 :(得分:0)

如果您希望10.10.2015URLUtility正常工作,

@Component应该是一个Spring bean。

@Autowire仅在Wicket组件中自动运行。在任何其他事情你需要注射#34;明确地使用@SrpingBean