关于TestNG无法采用Spring注入bean的问题解决
来源:互联网 发布:淘宝erp系统哪个好 编辑:程序博客网 时间:2024/05/17 05:51
昨天新搭建了一个Spring的框架,采用版本为3.2.5.RELEASE,现在spring版本都更新到4.x多了,一直都没有比较新版本的新特性,后面需要抽时间比较一下。
言归正传,在TestNG的测试代码无法注入Bean,通过一个晚上加一个上午的捣腾,终于解决,记录一下!
可能解决问题点有四:(不断捣腾,分不清哪个是主要原因了)
1、testNG测试类的@ContextConfiguration(locations = {“Spring的xml配置文件路径” })的配置问题。
2、对于父类所需的属性注解注入问题(dataSource注入)
3、关于@Inject、@Qualifier("XXX")、@Resource(name="XXX")使用的问题
4、Spring xml配置文件第一行不能为空的问题(这个也许真的不是原因)
一、testNG测试类的@ContextConfiguration(locations = {"classpath*:ApplicationContext.xml"})的配置问题
感觉问题就出在这呀,但还是没找到解决方法。
应该就是locations路径的问题。
以前的应用采用maven的model进行了分包,所有的xml配置放在conf包中,conf包中的xml采用classpath*:加载是没有问题的。
这次由于功能相对简单,不想做那么多层的分包,把xml文档都放在src/main/resources和src/test/resources文件夹下,classpath*:是否能访问得到?上网还没找到答案呢,待续~~~
二、对于父类所需的属性注解注入问题
对于父类的属性通过xml的配置,是很容易实现注入的,但对于注解注入方式,就需要注意一下,需重载父类的参数,然后使用resource注解。
比如 UserDao 继承于 BaseDao;BaseDao继承于JdbcDaoSupport,JdbcDaoSupport需要注入dataSource,而且JdbcDaoSupport的dataSource为private变量,get/set方法不允许重载,如何使用注解注入dataSource呢?
方法:在BaseDao定义如下代码,实现dataSource注入! BaseDao 的所有子类很方便使用JdbcDaoSupport使用的方法了。
private DataSource dataSourceTemp;@Resource(name="dataSource")public void setDataSourceTemp(DataSource dataSourceTemp) {this.dataSourceTemp = dataSourceTemp;super.setDataSource(dataSourceTemp);}
三、关于@Inject、@Qualifier("XXX")、@Resource(name="XXX")
testNG问题似乎不在此,但还是记录一下。
对于@Named注解的类,使用@Inject和@Resource(name="XXX")都能够注入。
四、其它
spring的xml是有加载先后顺序的,另注意一下<context:annotation-config />和<mvc:annotation-driven />的区别。
- 关于TestNG无法采用Spring注入bean的问题解决
- 关于spring boot无法自动注入bean问题解决方案
- Spring Bean注入失败的问题解决过程
- 消息队列监听器无法注入bean的问题解决
- 采用Spring管理Bean和依赖注入
- 采用Spring管理Bean和依赖注入
- 采用Spring管理Bean和依赖注入
- 采用Spring管理Bean和依赖注入
- Spring 中注入bean的properties配置文件位置问题解决
- Spring 中注入bean的properties配置文件位置问题解决
- Spring的bean注入
- 【Spring】 Bean的注入
- 解决spring-boot 中 bean无法注入的问题
- Spring+Quartz 定时任务无法自动注入bean的问题
- spring无法注入Bean的问题及解决
- 解决spring boot websocket无法注入bean的问题
- 解决spring boot websocket无法注入bean的问题
- Spring+Quartz无法自动注入bean问题
- OpenNMS简介
- 跳台阶
- android开发(十六) 如何限制 EditText 最大输入字符数
- 29_xml文件的序列化
- java.util.ConcurrentModificationException解决方案
- 关于TestNG无法采用Spring注入bean的问题解决
- strcpy strncpy strcat 区别
- [java语法]基本语法(1)
- UVa 10948 - The primary problem
- JavaScript学习笔记
- UVA 2191 Potentiometers
- poj1840
- OpenNMS架构介绍
- Oracle trunc()函数的用法