关于@Autowired标签的自动装在问题


  最近在使用spring框架进行web网站开发时使用的@Autowired值为空,研究了一下找到了解决办法。


  1.先看spring配置文件是否进行了扫包

<context:component-scan base-package="">
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
  2.看spring配置文件中是否开启扫描了(看网上说这个也可以省略不知道真假)。

<context:annotation-config/>
  3.如果这几步配置没有问题的话用junit测试应该是可以通过的。

 

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(value=SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:application-context.xml")
public class SpringJunitTest {

   @Autowired
    //此处的装配的值应该不为空

}
  4.如果这样发自动注入的值依旧为空那么很有可能和我出现了同样的问题

  springMVC配置时扫描的是总包,也就是说将@Service标签下的类也都一并扫描了。

  又因为springMVC是继承与spring的,当springMVC扫描后,spring不会进行扫描导致自动装载失败。我们只需要在springMVC配置文件中将 context:component-scan 的属性 use-default-filters 设置为false,关闭对spring的影响,问题解决。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值