spring 2.5 扫描注入问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 2.5 扫描注入问题相关的知识,希望对你有一定的参考价值。
1.spring配置文件里,扫描con.test包下的所有文件
<context:component-scan base-package="com.test" ></context:component-scan>
2.boss类里
@Component("boss")
public class Boss
@Autowired
@Qualifier("car")
private car car;
public String toString()
return "老板的车:"+car;
3.car类里
@Component("car")
public class car
private String brand="haha";
public String toString()
return "兰博基尼"+brand;
调用的方法是这样写的,但最后结果输出 boss的车 null,没有获得car的实力,我感觉是没扫描到,或者根本没读配置文件,请高人指点,小弟必有重谢
String[] locations = "applicationContext.xml" ;
ApplicationContext ap = new ClassPathXmlApplicationContext(locations);
Boss b = (Boss) ap.getBean("boss");
System.out.println(b);
---------------回1楼的朋友
你的这个方法我了解,注入没问题,但是我想在配置文件里只写这一句,让整个项目自动扫描注入
<context:component-scan base-package="com.test" ></context:component-scan>
---------------回2。3楼的朋友
在配置文件我用的是包扫描
在boss类上也加了@Component("boss")
Boss b = (Boss) ap.getBean("boss"); 这个也加了
但是报No bean named 'boss' is defined
我觉得还是缺点什么,才能让他完全自动扫描
第一,你的二个类是不是package com.test了
第二,你的applicationContext.xml是不是放在src根包下面了。
第三,最后的可能就是你的spring少jar包了。。 参考技术A BeanFactory factory = new XmlBeanFactory(ap);
Boss b =
(Boss) factory.getBean("boss");
System.out.println(b);
你需要手动从配置文件中读取bean
你不应该自己新建一个boss对象 参考技术B 你的Boss实例是你自己new 出来的,并不是spring 生成的,正确的做法应该是
Boss b= (Boss)ap.getBean("boss");
学习笔记——Spring底层IOC实现;Spring依赖注入数值问题;Spring依赖注入方式
2023-01-14
一、Spring底层IOC实现
1、IOC:将对象的控制器反转给Spring
2、BeanFactory与ApplicationContext
(1)BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,是面向Spring本身的,不是提供给开发人员使用的。
(2)ApplicaitonContext:BeanFactory的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicaitonContext而不是BeanFactory。
二、Spring依赖注入数值问题
1、字面量数值
(1)数据类型:基本数据类型及包装类、String
(2)语法:value属性或value标签
2、CDATA区
(1)使用的格式:<![CDATA[内容]]>
(2)放置的位置:在“.xml”中
(3)说明:一般在“内容”中放置的是带有“<”或者带有“>”的符号
3、外部已声明bean及级联属性赋值
(1)语法:ref
(2)注意:级联属性更改数值会影响外部声明bean(ref赋值的是引用)
4、内部bean
(1)内部类:在一个类中完整定义另一个类,当前类称之为内部类。
(2)内部bean:在一个bean中完整定义另一个bean,当前bean称之为内部bean。
(3)注:内部bean不会直接装配带IOC容器。
三、Spring依赖注入方式
1、为属性赋值方式
通过xxxset()方法
通过构造器
反射
(1)set注入
语法:<property>
(2)构造器注入
语法:<constructor-arg>
(3)p名称空间注入
语法:<bean p:xxx>
以上是关于spring 2.5 扫描注入问题的主要内容,如果未能解决你的问题,请参考以下文章
(转)Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
spring自动扫描的bean可以注入xml中配置的bean吗?
Spring 3.0 学习-DI 依赖注入_创建Spring 配置-使用一个或多个XML 文件作为配置文件,使用自动注入(byName),在代码中使用注解代替自动注入,使用自动扫描代替xml中bea(