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 扫描注入问题的主要内容,如果未能解决你的问题,请参考以下文章

Spring 扫描注入

(转)Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring

Spring 依赖注入

spring自动扫描的bean可以注入xml中配置的bean吗?

Spring 3.0 学习-DI 依赖注入_创建Spring 配置-使用一个或多个XML 文件作为配置文件,使用自动注入(byName),在代码中使用注解代替自动注入,使用自动扫描代替xml中bea(

Spring使用ComponentScan扫描Maven多模块工程的其它模块