spring中使用@Autowired报空指针,小菜深深的怀疑环境有问题! spring注解@Autowired 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2.Boss类(用到了@Autowired注解)public class Boss { @Autowired private Car car; public String toString(){ return "Big Boss is driving a "+car.getCarName() +", car Number is "+car.getCarNo(); }} 3.bean 配置文件:<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" /> <bean id="boss" class="annota.wire.Boss"></bean> <bean id="car" class="annota.wire.Car"> <property name="carName" value="Benz"></property> <property name="carNo" value="5210"></property> </bean> 4.用来测试的main函数(报空指针,debug的时候发现boss实例里的car为null):public static void main(String[] arge){ BeanFactory bf=new XmlBeanFactory(new ClassPathResource("beans.xml")); Boss boss=(Boss)bf.getBean("boss"); System.out.println(boss); } <!-- 需要扫描的标注了@Controller的类 --> <context:component-scan base-package="com.mine"> <context:include-filter type="regex" expression=".*.*.action.*" /> <!-- 这里排除service,防止事务失效 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan>类似于这样,去配置一个自动扫描 我们这都是@Autowired@Qualifier("signupTestMapper")SignupTestMapper signupTestMapper;也可以用@Resource至于为什么,真不知道。 已经加了<context:annotation-config /> <context:component-scan base-package="annota.wire" />这两句,不好使啊,而且:“如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean”我只是用到了@Autowire的注解,是需要用已注册的bean赋值给被注解的域成员的啊,不是要将这个域成员注册成bean,这个自动扫描的意义在哪里呢,是不是我哪理解错了 正解!!!撒花ing!!!下面是我在ITeye里搜到的,后面再慢慢加深体会吧,共勉!!!@Qualifier("XXX") 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。 我lib下已经导入了驱动包为什么还是连接错误 nutch搜索只显示搜索结果的条数,不显示搜索结果, 手把手教你javaEE 关于java.until.timer 请教hql中order by 的用法 关于:org.apache.struts.action 包的问题 请问哪有jsp电影网站的源码呀? smartupload能在weblogic下使用吗? java的这么多的种类都是干什么的啊??? 有没有jb7+weblogic 做得比较大的工程例子呀,哪个有高分相送阿!!一部分也成呀 myeclipse 读入mysql 汉字乱码 iBATIS还是Hibernate
public class Boss {
@Autowired
private Car car;
public String toString(){
return "Big Boss is driving a "+car.getCarName()
+", car Number is "+car.getCarNo();
}
}
<bean
class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
<bean id="boss" class="annota.wire.Boss"></bean>
<bean id="car" class="annota.wire.Car">
<property name="carName" value="Benz"></property>
<property name="carNo" value="5210"></property>
</bean>
public static void main(String[] arge){
BeanFactory bf=new XmlBeanFactory(new ClassPathResource("beans.xml"));
Boss boss=(Boss)bf.getBean("boss");
System.out.println(boss);
}
<context:component-scan base-package="com.mine">
<context:include-filter type="regex"
expression=".*.*.action.*" />
<!-- 这里排除service,防止事务失效 -->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>类似于这样,去配置一个自动扫描
@Autowired
@Qualifier("signupTestMapper")
SignupTestMapper signupTestMapper;也可以用@Resource
至于为什么,真不知道。
已经加了<context:annotation-config />
<context:component-scan base-package="annota.wire" />
这两句,不好使啊,而且:“
如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean”
我只是用到了@Autowire的注解,是需要用已注册的bean赋值给被注解的域成员的啊,不是要将这个域成员注册成bean,这个自动扫描的意义在哪里呢,是不是我哪理解错了
正解!!!
撒花ing!!!
下面是我在ITeye里搜到的,后面再慢慢加深体会吧,共勉!!!@Qualifier("XXX") 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。