我在做一个基本的spring mvc的例子
action是用注解的mvc。
接口
Java code
?
1
2
3
4
5
public interface ITest {
     
    public void say();
 
}接口的实现类
Java code
?
1
2
3
4
5
6
public class TestImpl implements ITest{
 
    public void say() {
        System.out.println("I am TestImpl");
    }
}Action类的代码是
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Controller
@RequestMapping("person")
public class UrAction extends JdbcTem{
     
    private ITest test;
     
    @RequestMapping("/say")
    public String say(){
        test.say();
        return null;
    }
 
    public ITest getTest() {
        return test;
    }
 
    public void setTest(ITest test) {
        System.out.println("--注解--"+test);
        this.test = test;
    }
}配置文件的地方是
Java code
?
1
2
3
4
5
<bean id="test" class="com.ur.action.TestImpl"></bean>
     
    <bean id="urAction" class="com.ur.action.UrAction">
        <property name="test" ref="test"></property>
    </bean>服务器启动的时候,控制台打印出了如下信息,表示注解进去了
--注解--com.ur.action.TestImpl@c6f734但是我网址访问
http://127.0.0.1:8080/SprintTest/person/say.do
确是null异常。如果加上@Autowired,可以注解进去,但是我不想用注解的方式注入
请问各位高手,我该怎么办。

解决方案 »

  1.   

    bean的id值和对应的对象相等就行了。
      

  2.   

    如果实在不喜欢注解,那就用传统的XML配置的方式在applicationContext.xml里面写Bean的配置进行注入呗。
      

  3.   

    类似的
    <beans>  
        <bean id="dateBean" class="java.util.Date"/>  
        <bean id="helloBean" class="onlyfun.caterpillar.HelloBean" autowire="autodetect">  
            <property name="helloWord">  
                <value>Hello!</value>  
            </property>  
        </bean>  
    </beans>http://www.cnblogs.com/kael/archive/2012/03/05/luojingqing.html
      

  4.   

    估计是你配置的解析器是根据注解去解析的   所以到值无法识别xml配置方式
    吧你的配置发出来看看
      

  5.   

    @Controller
    你都使用的注解了,初始化时不会去配置文件里找了