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个回答

楼上都在搞笑吧? 8)

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

zys890523
zys890523 表述真没问题? 也许我理解你的不到位。这里个人觉得应该表述成,不应该new出来,通过自动装配(且不说JSP里面怎么自动装配)或者通过BeanFactory中获取吧
7 年多之前 回复
iteye_7589
iteye_7589 跟我说的一回事啊。我说的有啥搞笑了?
7 年多之前 回复
dreamwangqing
dreamwangqing 谢谢你。后来我发现不应该new对象的。应该去获取bean对象。
7 年多之前 回复

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

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



张三


20


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

piggerman
piggerman 敢问这位,你用过spring不 他的info是new的,看清楚,info也托管才可以!!
7 年多之前 回复

2楼说的有道理

NumberBB
NumberBB dwangel
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问