蜗牛一般的小菜刚刚接触spring,今天刚弄懂@componet注解,是扫描直接注入的,不需要在配置文件中加<bean id…,但是想到如果这个实体需要参数的话,还是要在配置文件中配的啊,之前只用过<bean id=*** autowire=”byName”>的自动装配,今天想起了@Autowired,心里觉得这么个小实验,结果竟然报空指针,各位看官大拿,走过路过不要错过啊~~欢迎拍砖 |
|
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> 类似于这样,去配置一个自动扫描 |
|
40分 |
我们这都是
@Autowired @Qualifier(“signupTestMapper”) SignupTestMapper signupTestMapper; 也可以用@Resource |
正解! @Qualifier(“XXX”) 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。 |