当前位置:编程学习 > JAVA >>

神们帮小弟看下spring配置

action层
BaseAction.java
package common.action;
import java.text.SimpleDateFormat;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;

import common.serive.BaseService;
import common.serive.BasicHibernateSerive;

@SuppressWarnings("serial")
public class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware,SessionAware {
    
    protected HttpServletRequest request;
protected HttpServletResponse response;
@SuppressWarnings("unchecked")
protected Map map;
public BasicHibernateSerive basicHibernateSerive;

protected void setHead(){
response.setCharacterEncoding("utf-8");
}


public String execute() throws Exception {
return null;
}
/**
 * @param request the request to set
 */
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

/**
 * @param response the response to set
 */
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
/**
 */
public void setSession(Map<String, Object> arg0) {
this.map = arg0;
}

public void setBasicHibernateSerive(BasicHibernateSerive basicHibernateSerive) {
this.basicHibernateSerive = basicHibernateSerive;
}
}
Serive层
BasicHibernateSerive.java

package common.serive;

import common.HibernateDao.Dao;


public class BasicHibernateSerive {
public void setDao(Dao dao) {
this.dao = dao;
}

}
impl层
BaiscHibernateImpl.java
package common.dao.impl;

import java.util.Iterator;

import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import common.HibernateDao.Dao;



public class BaiscHibernateImpl extends HibernateDaoSupport implements Dao{



public BaiscHibernateImpl() {

}
public <T> Iterator<T> save(String hql) {
Query query = getSession().createQuery(hql);
return query.iterate();
}
  public void save(Object obj){
        getSession().save(obj);
    }

public <T> T queryOneResult(String hql) {
Query query = getSession().createQuery(hql);
     query.setMaxResults(1);
     return (T)query.uniqueResult();
}
}
spring配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-lazy-init="true">
<!-- 基础配置文件,应用全局相关的spring对象配置 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:global.properties</value>
</list>
</property>
</bean>

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="${jdbc.initialSize}" />
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="maxIdle" value="${jdbc.maxIdle}"/>
<property name="accessToUnderlyingConnectionAllowed" value="true" />
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" lazy-init="false">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="classpath:hibernate.cfg.xml" />
</bean>

<!-- transactionManager (Hibernate3) -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<!--  事务对象代理(模版)-->
<bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

<bean id="genericHibernateDao"
class="common.dao.impl.BaiscHibernateImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
   <bean name="basicService" parent="baseTransactionProxy">
<property name="target">
<bean class="common.serive.BasicHibernateSerive">
<property name="dao" ref="genericHibernateDao" />
</bean>
</property>
</bean>
</beans>
请问我这哪配置不对,为什么this.basicHibernateSerive.dao为什么为null --------------------编程问答-------------------- 这样配置不出问题才怪。。。

有些bean都还没有name的,bean之间还有嵌套关系。。。


如果要贴代码的话,就以代码的形式贴上去,这样会方便查看的。。。
比如你的一部分xml配置文件:
<bean id="genericHibernateDao"
class="common.dao.impl.BaiscHibernateImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
   <bean name="basicService" parent="baseTransactionProxy">
<property name="target">
<bean class="common.serive.BasicHibernateSerive">
<property name="dao" ref="genericHibernateDao" />
</bean>
</property>
</bean>
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,