0 0

spring 使用注解 对象为空 急求解啊5

web下配置了spring之后,applicationContext.xml文件如下:
<context:annotation-config />

<!-- 指定了需要扫描的类包 -->
<context:component-scan base-package="com.huawei.iread.portal.*" />

我现在对应包下面的类中使用注解标签。如下:
@Autowired
private TestUserService testUserService;
@Autowired
private MybatisTestDao mybatisTestDao;
这里一直是空值,我手动取值
MybatisTestDao dao1=new XmlBeanFactory(new ClassPathResource("applicationContext.xml")).getBean(MybatisTestDao.class);
System.out.println(dao1);这里是有值的,就是说这样去读取配置文件的配置,扫描注解是有效的,因为MybatisTestDao 在扫描包的范围内,但是tomcat启动之后,再去注解这个对象,就拿不到值了,不管什么对象,都是空值,我想应该不是标签无效吧,现在可以确定就是实体都被扫描到了,就是不知道为什么一直注入不进去,空值,求各位大侠帮助,小弟万分感谢

问题补充:通过查看日志,确定spring扫描出了所有配置了注解标签的类对象,但是就是通过@autowired标签注入不进来,启动的时候,这个标签标记的类变量是没有报错的,说明找到了对应的bean,说明spring加载是成功的,但是就是这个值在程序启动后访问的时候为空,求好心人帮忙解决。
2012年10月17日 17:10

7个答案 按时间排序 按投票排序

0 0

spring注解 @componen @Repository @service @controller

2012年10月18日 09:30
0 0

有没有用@Service注解?

2012年10月18日 09:22
0 0

引用

@Autowired
private TestUserService testUserService;
@Autowired
private MybatisTestDao mybatisTestDao;
这里一直是空值,我手动取值
MybatisTestDao dao1=new XmlBeanFactory(new ClassPathResource("applicationContext.xml")).getBean(MybatisTestDao.class);


你这个类对象肯定不是spring 的listener构造出来的,因为@Autowired默认是必须要注入的,否则容器初始化失败。
你没提到容器启动失败,说明你这个类对象并不是在spring中获取的。

2012年10月18日 08:51
0 0

配置log4j看看tomcat启动有没有扫描到所有的资源

log4j.rootCategory=info, myLog

#org.apache.log4j.ConsoleAppender定义myLog的输出端是控制台
log4j.appender.myLog1=org.apache.log4j.ConsoleAppender

#org.apache.log4j.PatternLayout可以灵活地指定布局模式
log4j.appender.myLog1.layout=org.apache.log4j.PatternLayout

# %n输出一个回车换行符
# %m输出代码中指定的消息
# %p输入日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
# %l输出日志发生的位置,相当于%c.%m(%f:%l)的组合,包括类目名、发生的线程、以及在代码中的行数
log4j.appender.myLog1.layout.ConversionPattern=-----------------%n %m %n %l %n------------------------------%n%n

2012年10月17日 19:01
0 0

XmlBeanFactory  这个默认不支持BeanPostProcessor,需要使用ApplicationContext实现如ClassPathXmlApplicationContext。

请参考
http://jinnianshilongnian.iteye.com/blog/1489787
http://jinnianshilongnian.iteye.com/blog/1492424

2012年10月17日 19:01
0 0

前端框架使用的struts,JSF,SpringMVC, 如果是springMVC则有一个专门的配置文件做这个设置,写在

<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:META-INF/spring/**/*.xml</param-value>
	</context-param>

这个指定的spring配置文件中是无效的<controller层的代码>。
如果是其他的框架,则必须确认此类是有spring进行初始化的,不然不加入spring的管理,也所不会真的这些注解做操作,自动设置对应的值的哦。

2012年10月17日 17:53
0 0

MybatisTestDao dao1=new XmlBeanFactory(new ClassPathResource("applicationContext.xml")).getBean("mybatisTestDao");
试试

2012年10月17日 17:16

相关推荐

    java,Spring实现ACM国际大学生程序设计竞赛试题 数字三角形

    例如,可以定义一个服务类,其中包含处理数字三角形问题的主要逻辑,然后通过Spring的@Service注解将其声明为一个服务组件。在该服务类中,我们可以使用@Autowired注解自动注入需要的依赖,如数据库连接池、日志服务...

    Desktop_spring-massmatlab_弹簧系统_stabilityanalysis_

    标题中的“Desktop_spring-massmatlab_弹簧系统_stabilityanalysis_”暗示了这是一个关于使用MATLAB进行弹簧质量系统的稳定性分析的项目。这个系统通常由一个或多个质量块和连接它们的弹簧组成,用于研究机械振动的...

    Java语言程序设计第8版 习题解答+例题程序

    7. **反射与注解**:动态访问类信息,创建对象,以及自定义注解及其解析。 编程题答案部分则提供了实践性的解决方案,可能涉及以下主题: 1. **算法与数据结构**:排序(冒泡、选择、插入、快速等)、查找、图与树...

    matlab代码注释标准-2021spring-term-lerning:寒假打卡学习

    2021spring-term-lerning 寒假打卡学习 总目标 编程能力能较以往大大增强(比如写代码速度远远胜于之前,比如速度能比以前快一倍,bug比以前少一半)。 算法能力增强(对于数学问题的MATLAB原理与实现,数值分析的...

    Java_中游的.zip

    虽然标签为空,但我们可以从标题和文件名推测其内容。"中游"通常指的是在Java学习过程中已经掌握了基础知识,正在深入进阶的阶段。"optaplanner_main.zip"可能是其中的一个子文件,它涉及到的是OptaPlanner,这是一...

    完整的ognl源代码

    6. **类型转换**:OGNL可以根据需要自动进行类型转换,例如,将字符串转换为整数,或者将对象转换为其子类。 7. **值解析和设置**:在Struts2框架中,OGNL被用来解析HTTP请求参数并将其设置到Action对象的属性上,...

    旷视科技Java笔试面试题.zip_面试资料下载

    5. **注解**:了解元数据的概念,自定义注解以及使用反射读取注解信息。 6. **设计模式**:熟悉常见的23种设计模式,如单例、工厂、观察者等,并能在实际项目中应用。 7. **JVM**:理解垃圾回收机制,内存模型(堆...

    Java面试题汇总

    ### Java面试题汇总知识点 #### 一、Java连接数据库及PreparedStatement与Statement的区别 - **连接数据库的步骤**: ...- **100匹马运输100货物问题**:使用穷举法结合数学公式求解,找到所有可能的运输方案。

    JAVA高级工程师

    开发者通常会使用@Controller、@RequestMapping等注解定义控制器,以及ModelAndView对象来处理视图和模型数据。 3. **Apache与Tomcat整合**:Apache作为反向代理服务器,可以接收HTTP请求,并将动态请求转发给...

    《计算方法》实验程序代码【java版】

    《计算方法》是一门深入研究数值计算理论与实践的学科,涵盖了线性代数、微积分、数值优化、常微分方程等...此外,通过查看代码的注释和测试用例,可以更好地理解每段代码的功能和使用场景,从而加深对计算方法的理解。

    cs61b2018sp:UCB CS 61BSpring2018

    8. **软件工程实践**:教授良好的编程习惯,如代码风格、注释、测试和调试技巧,以及版本控制工具的使用。 9. **编程项目**:通过实际编程项目,让学生将所学应用到实践中,提升问题解决和团队协作能力。 10. **...

    软件开发应知应会-84分.pdf

    2. **栈和队列**:栈是一种后进先出(LIFO)的数据结构,允许在两端进行插入和删除操作,通常用于递归、表达式求解等。队列是一种先进先出(FIFO)的数据结构,只允许在队尾插入,在队头删除,常用于任务调度、缓冲...

    【程序员面试宝典】Java程序员面试

    - **枚举与注解**:掌握枚举类型的应用,以及自定义注解的创建和使用。 - **反射**:理解反射在程序中的作用,如何通过反射动态调用方法和访问成员变量。 - **Lambda表达式**:学习Java 8引入的函数式编程概念,...

    sp21-cse110-lab3:cse110 lab3的回购

    【标签】为空,没有提供额外的主题或技术关键词。 【压缩包子文件的文件名称列表】中的 "sp21-cse110-lab3-main" 暗示这是实验的主要代码文件或者是包含实验代码的目录。在计算机科学课程中,尤其是编程相关的作业...

    面试题目.docx

    - **子集求解**:可以使用回溯算法来求解数组的所有子集。 - **二叉树反转**:通过递归的方式逐层反转二叉树的左右子树。 ### 34. 面试流程 - **技术面试**:通常会针对简历中的项目进行详细询问,考察候选人的技术...

    J2EE武功秘籍

    - **动态规划**:通过把原问题分解为相对简单的子问题的方式来求解。 **4. 回溯算法** - **回溯**:试探性地解决问题,当发现路径不可行时就撤回选择。 **5. 分支界限算法** - **分支界限法**:结合了分治法和...

    面试及常见问题总结(偏Java)

    Prim算法是求解图的最小生成树的算法,每次从已选节点中找到与未选节点之间最短边,将其添加到最小生成树中。 16. **Cache和Buffer**: Cache是硬件层面的高速缓存,用于存储CPU常用数据以提高访问速度;Buffer是...

    programmeUebungenFS21

    标题“programmeUebungenFS21”暗示了这是一个与编程练习或项目相关的集合,可能是一组编程作业或实验,而“FS21”可能是“Fachsemester 21”或“Spring 2021”的缩写,指的是2021年春季学期。这个项目可能属于一个...

    Notes-USACO-2021-弹簧

    《USACO 2021春季教程笔记...通过研读这份"Notes-USACO-2021-Spring"笔记,你不仅可以了解USACO竞赛的基本要求和解题思路,还能系统地提升自己的算法知识和编程技能,为参加类似的竞赛或解决实际问题打下坚实的基础。

Global site tag (gtag.js) - Google Analytics