0 0

请教Spring注入得到的值为null15

大家好,我在搭建ssh2框架时,spring注入值为null,代码如下。

1 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/test8">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>

<!-- 定义hibernateTemplate -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<!-- 配置DAO组件 -->
<bean id="userDAO" class="com.test.dao.UserDaoImpl">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>

<!-- 配置业务逻辑组件 -->
<bean id="userService" class="com.test.service.UserServiceImpl">
<!-- 为业务逻辑组件注入DAO组件 -->
<property name="userDao" ref="userDAO"></property>
</bean>
<!-- 创建Action实例 -->
<bean id="userAction" class="com.test.action.UserAction" scope="prototype">
<property name="userServiceImpl" ref="userService"></property>
</bean>
</beans>

 

2 web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!--定义核心Filter FilterDispatcher -->

<filter>

<!-- 定义核心Filter的名称 -->

<filter-name>struts2</filter-name>

<!--定义核心Filter的实现类 -->

<filter-class>

org.apache.struts2.dispatcher.FilterDispatcher

</filter-class>

</filter>

 

<filter-mapping>

<!--核心Filter的名称 -->

<filter-name>struts2</filter-name>

<!--使用该核心Filter来接受所有的Web请求 -->

<url-pattern>/*</url-pattern>

</filter-mapping>

 

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

</web-app>

 

3 struts.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">

<!-- struts为配置文件根元素-->

<struts>

 

<constant name="struts.i18n.encoding" value="utf-8"></constant>

<constant name="struts.enable.DynamicMethodInvocation"  value="true"/><!-- 动态方法调用 -->

<!-- Action必须放在指定的包名空间中-->

<package name="struts2" extends="struts-default">

<action name="addUser" class="userAction" method="addUser1">

<!-- 定义处理结果与视图资源之间的关系-->

<result name="success">/showAll.jsp</result>

</action>

</package>

</struts> 

4 action类如下

package com.test.action;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.struts2.interceptor.ServletRequestAware;

import org.apache.struts2.interceptor.ServletResponseAware;

 

import com.opensymphony.xwork2.ActionSupport;

import com.test.bean.User;

import com.test.service.UserService;

 

public class UserAction extends ActionSupport implements ServletRequestAware,

ServletResponseAware{

/**

*/

private static final long serialVersionUID = -1885854904242552572L;

HttpServletRequest request;

HttpServletResponse response;

private UserService userServiceImpl;

 

/**

* @param userServiceImpl the userServiceImpl to set

*/

public void setUserServiceImpl(UserService userServiceImpl) {

this.userServiceImpl = userServiceImpl;

}

 

/**

* @return the userServiceImpl

*/

public UserService getUserServiceImpl() {

return userServiceImpl;

}

 

public String addUser1() {

System.out.println("AAAA");

this.response.setContentType("text/json;charset=utf-8");

this.response.setCharacterEncoding("UTF-8");

User user = new User();

user.setUsername("admin");

user.setPassword("admin");

user.setDeviceId("aaa");

boolean flag = userServiceImpl.addUser(user);//这里userServiceImpl值为null

if(flag){

return SUCCESS;

}else{

return ERROR;

}

}

@Override

public void setServletResponse(HttpServletResponse arg0) {

// TODO Auto-generated method stub

this.response = arg0;

}

 

@Override

public void setServletRequest(HttpServletRequest arg0) {

// TODO Auto-generated method stub

this.request = arg0;

}

 

 

}

 

请教。

 

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

0 0

你可以产尝试一下:在addUser1()方法中声明
BeanFactory factory = new ClassPathXmlApplicationContext("你的Spring配置文件");
?? action = (??) factory.getBean("你的beanaction");
                ??.userServiceImpl.addUser(user);


2014年1月23日 13:53
0 0

从你的配置信息看出你有UserService的接口实现类那么
定义的userservice 的变量 userServiceImpl 和你UserService实现接口类<bean id="userService" class="com.test.service.UserServiceImpl>命名冲突
你要么命名 private UserService userService 生成get set方法
userSercvice.addUser() 再看看

如果你没有定义UserService的接口,直接是类方法调用 哪就是上面仁兄说的那样定义

2014年1月15日 09:39
0 0

private UserService userServiceImpl;
这里要这样写 private UserServiceImpl userServiceImpl;

2014年1月14日 15:05

相关推荐

    知识共享-Spring注入属性值案例(雷惊风).

    ### Spring框架中的属性值注入详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序。它提供了全面的基础架构支持,包括依赖注入(Dependency Injection, DI)、面向切面编程...

    spring 设值注入

    在Spring框架中,设值注入(Value Injection)是一种将外部属性值注入到bean对象中的方法。它是通过在bean的配置元数据中定义属性值来实现的,这些值会在bean实例化时自动设置。设值注入是Spring依赖注入...

    详解Spring关于@Resource注入为null解决办法

    Spring @Resource 注解解决 null 问题 Spring 框架中,@Resource 注解是一种常用的依赖注入方式,用于将对象注入到应用程序中。但是,在实际开发中,经常会遇到 @Resource 注解的对象为 null 的问题。本文将详细...

    spring mvc拦截器过滤json中的null值

    在Spring MVC框架中,我们经常需要处理JSON数据,这些数据可能包含null值。在某些情况下,为了保持数据的整洁和避免后端处理null值时出现异常,我们需要在数据传输前过滤掉这些null值。本教程将详细介绍如何使用...

    Spring三种注入方式(三)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过构造函数来传递依赖对象的一种方式。当类有多个构造函数时,Spring会使用带有最多参数的构造函数...

    Spring注入的方式

    本文将详细探讨Spring中的两种主要注入方式:构造器注入和setter注入,以及它们各自的特点和适用场景。 首先,让我们理解什么是依赖注入(Dependency Injection,简称DI)。在传统的编程模式中,一个类通常会直接...

    Spring (bean怎样注入值)学习实例

    总结来说,Spring通过XML配置进行Bean的值注入,特别是集合类型的注入,能够灵活地管理对象间的依赖关系。这种方式使得代码更易于测试和维护,同时也降低了组件之间的耦合度。在实际开发中,可以根据项目需求选择...

    spring注入配置文件

    spring注入配置文件,使用注解注入的

    Web服务器端在Action、dao、service之外实现spring注入

    我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...

    spring依赖注入例子

    Spring框架的依赖注入(Dependency Injection,简称DI)是其核心特性之一,它使得对象之间的关系在运行时由Spring容器管理,而不是硬编码在类内部。这样可以提高代码的可测试性和可维护性,因为对象的依赖关系变得松...

    spring的注入方式

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象间的依赖关系得以解耦,提高了代码的可测试性和可维护性。Spring提供了多种注入方式,包括set注入、构造注入和自动注入...

    spring依赖注入底层详解

    在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...

    Spring的注入方式详解

    Spring 框架是 Java 开发中非常重要的一个组件,它提供了一种强大的依赖注入(Dependency Injection,简称 DI)机制,使得对象之间的依赖关系可以通过配置文件或者注解来管理,而不是硬编码在类的内部。这有助于提高...

    spring注入原理

    Spring框架是Java开发中不可或缺的一部分,它通过提供依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)等核心功能,极大地简化了企业级应用的开发工作。...

    关于spring boot中几种注入方法的一些个人看法

    Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...

    Spring依赖注入检查.

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的概念、工作原理以及如何在实际...

    SpringIoc注入

    **Spring Ioc 注入详解** Spring 框架的核心特性之一就是依赖注入(Dependency Injection,简称DI),也常被称为控制反转(Inversion of Control,IoC)。它是一种设计模式,可以减少代码之间的耦合,提高系统的可...

    用Spring注入Servlet文件 实现注入set

    使用spring的依赖注入,来实现servlet中注入dao层

    Spring三种注入方式(二)

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇主要介绍Spring中的三种注入方式,着重讲解在"Spring三种注入...

    spring注入文件写法

    在Spring框架中,注入是一种将依赖关系从代码中解耦并允许对象在运行时自动配置的方法。本示例主要展示了如何使用Spring配置文件来实现数据源、Hibernate会话工厂、事务管理和DAO注入。以下是详细的知识点解析: 1....

Global site tag (gtag.js) - Google Analytics