java web-Spring bean注入 获取为空

问题描述

Spring bean注入 获取为空

<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.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/db_xyd?useUnicode=true&amp;amp;amp;amp;amp;amp;characterEncoding=utf-8-">
    </property>
    <property name="username" value="root"></property>
    <property name="password" value="1234"></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.SQLServerDialect-->
                org.hibernate.dialect.MySQLDialect
            </prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
    <property name="mappingResources">
        <list>
            <value>com/model/TDictionary.hbm.xml</value>
         </list>
    </property>
</bean>
<bean id="TDictionaryDAO" class="com.dao.TDictionaryDAO">
    <property name="sessionFactory">
        <ref bean="sessionFactory" />
    </property>
</bean>

<bean id="dictionaryAction" class="com.action.dictionaryAction" scope="prototype">
    <property name="dictionaryDAO">
        <ref bean="TDictionaryDAO" />
    </property>
</bean>

package com.dao;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.model.TDictionary;

public class TDictionaryDAO extends HibernateDaoSupport
{
private static final Log log = LogFactory.getLog(TDictionaryDAO.class);
public void save(TDictionary transientInstance)
{
log.debug("saving TDictionary instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}

public static TDictionaryDAO getFromApplicationContext(ApplicationContext ctx) {
    return (TDictionaryDAO) ctx.getBean("TDictionaryDAO");
}

}

package com.action;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.dao.TDictionaryDAO;
import com.model.TDictionary;
import com.opensymphony.xwork2.ActionSupport;

public class dictionaryAction extends ActionSupport
{
private int OID;
private String willtake;

private TDictionaryDAO dictionaryDAO;

public String dictionaryAdd()
{
    TDictionary dict=new TDictionary();
    dict.setOID(OID);
    dict.setL_key(100000);
    dict.setVc_value(willtake);
    dict.setVc_caption("vc_caption");

    //这里报空指针异常,是dictionaryDAO空
    dictionaryDAO.save(dict);
    return "success";
}

public TDictionaryDAO getDictionaryDAO()
{
    return dictionaryDAO;
}

public void setDictionaryDAO(TDictionaryDAO dictionaryDAO)
{
    this.dictionaryDAO = dictionaryDAO;
}

}

解决方案

public String dictionaryAdd()
{

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//新加1
this.dictionaryDAO=TDictionaryDAO.getFromApplicationContext(ac);//新加2

    TDictionary dict=new TDictionary();
    dict.setOID(OID);
    dict.setL_key(100000);
    dict.setVc_value(willtake);
    dict.setVc_caption("vc_caption");
    dictionaryDAO.save(dict);
    this.setMessage("save dictionary ");
    this.setPath("dictionaryManage.action");
    return "success";
}
这样就好了,不知道为何要加
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//新加1
    this.dictionaryDAO=TDictionaryDAO.getFromApplicationContext(ac);//新加2
难道是注入出什么问题了么

解决方案二:

看配置没发现问题啊。关注中!

时间: 2024-11-02 02:11:24

java web-Spring bean注入 获取为空的相关文章

java web spring配置问题

问题描述 java web spring配置问题 3C spring+struts+hibernate 框架,项目启动,bean报错,错误类型是六月 15 2015 7:47:47 下午 org.apache.catalina.core.ApplicationContext log信息: Initializing Spring root WebApplicationContextD:java7apache-tomcat-7.0.62binWebRootWEB-INFD:java7apache-t

java框架spring依赖注入的6种方式

spring中如何给对象的属性复制? 1)通过构造方法2)通过set方法给属性注入值3)p命名空间4)自动转配(了解即可,不推荐使用)5)注解6)通过接口 准备工作(模拟业务方法)Action-->service-->dao 1)UserDao:     p<span style="font-family:Courier New;">ublic class UserDao {           public void save(){              

java web 防止xss注入

Java Web中如何防止xss 注入呢? 首先讨论第一个问题:存到数据库中的是转码之后的还是转码之前的? 转码之后: 转码之前:   结论是:存到数据库中的就是转码之前的.为什么呢? 因为xss 攻击只存在PC web端,如果数据库中存储的就是转码之后的,那么手机app显示出来不就有问题了么?   所以最终的做法就是在PC web端 转码: 转码方法: Js代码   escape= function (str) {               str = str ? str : '';    

Java Web项目前端规范(采用命名空间使js深度解耦合)_JSP编程

没有规矩不成方圆,一个优秀的代码架构不仅易于开发和维护,而且是一门管理与执行的艺术. 这几年来经历了很多项目,对代码之间的强耦合及书写不规范,维护性差等问题深恶痛绝.在这里,通过仔细分析后,结合自己的编码习惯总结了一套适用于javaweb项目的前端书写规范,与大家分享一下. ps:感谢阿海的创意,后期整理如下(附文件下载): 一.项目结构 这里和其他项目区别不大,我将模板抽离出来,更容易分析和理解: 解释一下:js主要包括extends(引入第三方的js).module(项目模块自己的js).l

详解Java的Spring框架中bean的注入集合_java

使用value属性和使用<property>标签的ref属性在你的bean配置文件中的对象引用,这两种情况下可以处理单值到一个bean,如果你想通过多元值,如Java Collection类型List, Set, Map 及 Properties.要处理这种情况,Spring提供了四种类型的如下集合的配置元素: 可以使用<list> 或<set> 来连接任何实现java.util.Collection或数组. 会遇到两种情况(a)将收集的直接的值及(b)传递一个bean

spring中如何获取注入bean里方法上的注解?

问题描述 spring中如何获取注入bean里方法上的注解? 有这样一个需求,在spring中,想用反射获取一个注入bean中方法的注解 一般情况下这样的操作就行了: Method method = bean.getClass().getMethod(...); Annotation[] annotations = method.getAnnotations(); 这样就能获取注解了. 但在spring中,这种方法是获取不到annotation的,原因是这里的bean其实是一个代理类.那么问题来

详解Java的Spring框架中bean的定义以及生命周期_java

bean的定义形成应用程序的骨干是由Spring IoC容器所管理的对象称为bean.bean被实例化,组装,并通过Spring IoC容器所管理的对象.这些bean由容器提供,例如,在XML的<bean/>定义,已经看到了前几章的形式配置元数据创建. bean定义包含所需要的容器要知道以下称为配置元数据的信息: 如何创建一个bean Bean 生命周期的详细信息 Bean 依赖关系 上述所有配置元数据转换成一组的下列属性构成每个bean的定义. Spring配置元数据 Spring IoC容

Java中Spring获取bean方法小结_java

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢? Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的接口,它提供了高级IoC的配置机制.BeanFactory使管理不同类型的Java对象成为可能,应用上下文(com.springframework.context.ApplicationContext)建立在BeanFactory基础之上,提供

深入解析Java的Spring框架中bean的依赖注入_java

每一个基于java的应用程序都有一个共同工作来展示给用户看到的内容作为工作的应用几个对象.当编写一个复杂的Java应用程序,应用程序类应该尽可能独立其他Java类来增加重复使用这些类,并独立于其他类别的测试它们,而这样做单元测试的可能性.依赖注入(或有时称为布线)有助于粘合这些类在一起,同时保持他们的独立. 考虑有其中有一个文本编辑器组件的应用程序,要提供拼写检查.标准的代码将看起来像这样:   public class TextEditor { private SpellChecker spe