dreamwangqing
dreamwangqing
2012-07-13 11:39
浏览 436
已采纳

spring注解注入的对象为空

本人想测试一下spring注解的用法,但是刚开始就遇到了问题。就是注入的对象为null.

 

首先,加入了spring的jars。如下:

1、common-annotations.jar

2、commons-dbcp.jar

3、commons-io.jar

4、commons-logging.jar

5、commons-pool.jar

6、spring.jar

 

然后,在web.xml中加入了配置信息。如下:

<!-- 配置文件位置 -->

<context-param>
    <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
 </context-param>
 
 <!-- spring的监听器 -->
 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

 

然后,写了两个测试类。如下:

package demo;

 

public class Users {

 private String name;
 private int age;

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }
}

--------------------------------

package demo;

import javax.annotation.Resource;

 

public class Info {

 private Users user;

 

 public Users getUser() {
  return user;
 }

 

 @Resource(name="users")
 public void setUser(Users user) {
  this.user = user;
 }
}

 

然后,在applicationContext.xml中配置bean。如下:

     <context:annotation-config/>
    
     <bean id="users" class="demo.Users"></bean>

 

然后,在index.jsp中输入Info.User。如下:

<%
  Info info = new Info();
 %>
 <%=info.getUser() %>

 

然后,输入的结果为 null.

 

请问高手,这是什么原因?谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • zys890523
    zys890523 2012-07-14 12:10
    已采纳

    楼上都在搞笑吧? 8)

    Info info = new Info(); 这行不对

    点赞 评论
  • iteye_7589
    iteye_7589 2012-07-13 13:46

    要么让spring自动发现类,
    要么在xml里用bean声明类。
    否则,不会自动读取类,不读取类就不会读取annotation。
    info类也要成为spring context中一个bean才行。

    点赞 评论
  • oyzj642
    oyzj642 2012-07-13 16:22

    因为没有给类注入值啊,
    在applicationContext.xml中配置bean
    context:annotation-config/



    张三


    20


    就是要给Users类里定义的属性注入值

    点赞 评论
  • NumberBB
    NumberBB 2012-07-13 16:57

    2楼说的有道理

    点赞 评论

相关推荐