我有类似的问题,但是是春天的新手。 我试图性能加载到一个@Service,并试图用@Value检索与属性值...
@Autowired
public @Value("#{myProperties['myValue']}") String myValue;
我花了一整天试图注解的各种组合,但它总是返回null 。 最后,事实之后,答案一如既往显而易见。
1)确保弹簧被包括包层次结构 在你servlet.xml的扫描您的类注释(它会扫描低于基准值一切你插入。
2)确保你不是在'刚刚告诉Spring看的那类新课程'。相反,您在@Controller类中使用@Autowire。
Spring中的所有东西都是一个单例,发生了什么事情是Spring将这些值加载到它的Singleton中,然后我'新建了一个不包含新加载值的类的另一个实例,所以它始终为空。
改为在@Controller中使用...
@Autowired
private MyService service;
调试...... 有一件事我没有找到这是如下致以服务...
@Service
public class MyService implements InitializingBean
然后把调试语句...
@Override
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
LOGGER.debug("property myValue:" + myValue);
}
在这里,我可以看到初始化时设置的值,后来当我将它打印到一个方法为null时,所以这对我来说是一个很好的线索,它不是同一个实例。
这个错误的另一个线索是,Tomcat抱怨超时试图从无法解析HTTPheader的Socket读取......这是因为Spring已经创建了服务的实例,所以我有,所以我的一个人在做真正的工作,而春天正在其实例中超时。
来源
2013-08-23 13:21:04
Rob
Config类定义为spring bean吗? – Raghuram 2010-11-09 04:28:14
不可以?我将如何做注释? – Polaris878 2010-11-09 04:39:15
我试过在班上使用“@Component”和“@Controller”,都没有工作 – Polaris878 2010-11-09 04:57:14