两个问题 
//1.一般C/S下这样写就可以获得_sonDao对象.那如果是在B/S环境下都流行怎么写.用来获得_sonDao的句柄呢?
//2.用spring有没有办法能配置成.用SonDao _sonDao = new SonDao()实例化就可以调用 _sonDao.searchInfo();成功啊?
//原码如下<?xml version="1.0" encoding="UTF-8"?>
<beans 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.xsd"
       default-autowire="no"
       default-lazy-init="false"
       default-dependency-check="none"
><!--DB properties-->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="location">
    <value>proxool.properties</value>
   </property>
</bean>
 
<!--Mysql DataSource-->
<bean id="proxoolDataSource"
        class="org.logicalcobwebs.proxool.ProxoolDataSource" >
        <property name="driver">
            <value>${proxool.dbDriver}</value>
        </property>
        <property name="driverUrl">
            <value>${proxool.dbUrl}</value>
        </property>
        <property name="user">
            <value>${proxool.dbUser}</value>
        </property>
        <property name="password">
            <value>${proxool.dbPassWord}</value>
        </property>
        <property name="alias">
        <value>springmvc</value>
      </property>
</bean>
<!-- jdbc template -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
     <property name="dataSource">
       <ref bean="proxoolDataSource"/>
     </property>
</bean> <!--Connection BaseBean-->
<bean id="baseDao" class="BaseDao">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
<!--Connection SonBean-->
<bean id="sonDao" class="SonDao">
   <property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean></beans>TestCase.java
public class TestCase { public static void runDb() {
FileSystemXmlApplicationContext context = 
     new FileSystemXmlApplicationContext(new String[]{"applicationContext.xml"});
//1.一般C/S下这样写就可以获得_sonDao对象.那如果是在B/S环境下都流行怎么写.用来获得_sonDao的句柄呢?
SonDao _sonDao = (SonDao) context.getBean("sonDao");
//2.用spring有没有办法能配置成.用SonDao _sonDao = new SonDao()实例化就可以调用 _sonDao.searchInfo();成功啊?
//SonDao _sonDao = new SonDao();
System.out.println(_sonDao.searchInfo());
}

public static void main(String [] args)
{
runDb();
}
}
BaseDao.java
public class BaseDao { public BaseDao() {} /**
 * 根据Sql去DB检索
 */
public List<Object> queryForList(String sql, Object parameter[]) {
return jdbcTemplate.queryForList(sql, parameter);
} private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}SonDao.java
public class SonDao extends BaseDao{
//  检索
public List searchInfo() {
return queryForList("SELECT * FROM SPRINGTEST", null);
}
}

解决方案 »

  1.   

     new   SonDao() 这样是不行的。
    还是要
    SonDao _sonDao = (SonDao) context.getBean("sonDao");
      

  2.   

    WebApplicationContextUtils.getWebApplicationContext(this.getServletContext()).getBean("sonDao");
      

  3.   

    web中部用去写,你在要调用searchInfo()的地方先声明一个SonDao   _sonDao;然后来个get,set方法。然后继续写代码。。继续把_sonDao子配置文件配额制一下,那么启动启动起来的时候会根据你的配置自动生成_sonDao对象,就OK啦
      

  4.   

    spring 整合struts获取bean共有3种方法。你可以去看看相关书籍比较清楚。如李刚的J2EE轻量级开发
      

  5.   

    你用spring 就是来管理bean的,当然用spring的方式来获取最好了,不然还用了干嘛
      

  6.   

    我们公司一般是这样的
    SpringContextLoader注册成SERVLET然后调用SPRING提供的bean工厂方法。。
    这样使用STRUTST SERVLET都可以交给SPRING管理
      

  7.   

    注册Bean在外面引用bean啦*DAO dao = (*DAO) context.getBean("bean的名字");