SSH 回顾二 特殊情况下 获取Spring 注入对象

特殊情况一:ActionForm

思路有两种:

第一种:将你需要注入的参数设置为static的,然后将设值方法setXXX的返回值设置为非void型,比如你的

protected IDaoService daoService;  

改为

protected static IDaoService daoService;  

设值方法setXXX,为:

public static boolean setDaoService(IDaoService daoService) {

    LookuserForm.daoService = daoService;

    return true;

}

然后在spring配置文件中设值:

<bean id="BaseBoolean"

class="org.shan.student.form.LookuserForm"

factory-method="setDaoService"

depends-on="daoService">

<constructor-arg ref="daoService"></constructor-arg>

</bean>

这样就实现了daoService的注射。class就是你的ActionForm的类,factory-method就是你的非void型注入对象的方法,depends-on就是你要注入对象使用的beanconstructor-arg ref="XXX"也是一样了。

第二种:重写ActionForm的public void setServlet(ActionServlet servlet)方法。

public void setServlet(ActionServlet servlet) {

ServletContext context = servlet.getServletContext();

ApplicationContext ctx =WebApplicationContextUtils.getWebApplicationContext(context);

LookuserForm temp = (LookuserForm) ctx.getBean("LookuserForm");

this.daoService = temp.getDaoService ();

super.setServlet(servlet);

}

特殊情况二:servlet中获取

Servlet(或者Filter,或者Listener)中使用springIOC容器默认情况下Servlet容器创建spring容器对象,注入到servletContext中,servletContext对象又是注入到session对象中,session对象又是注入到request对象中,request对象又是注入到servlet对象中,(其实不是很标准的注入,是传参数,或者对属性直接付值)。层层依赖可以得到spring容器对象。

ServletContext   servletContext   =   request.getSession().getServletContext();          

 ApplicationContext   ctx   =   WebApplicationContextUtils.getWebApplicationContext(servletContext);

 UsersManager   um   =   (UsersManager)ctx.getBean( "UserManager");



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值