Ioc(Inversion of Control)


       Ioc(Inversion of Control)即控制反转。在java开发中,Ioc意味着将设计好的类交给系统去控制,而不是在自己的内部控制。这称为控制反转。

      Ioc方式

       在struts2中,通过Ioc方式将Servlet对象注入到Action中,具体实现是由一组接口决定的,要采用Ioc方式就必须在Action中实现以下接口:
           1)ApplicationAware:以Map类型向Action注入保存在ServletContext中的Attribute集合
           2)SessionAware:以Map类型向Action注入保存在HttpSession中的Attribute集合。
           3)CookiesAware:以Map类型向Action注入Cookie中的数据集合。
           4)ParameterAware:向Action中诸如请求参数集合
           5)ServletContextAware:实现该接口的Action可以直接访问ServletContext对象,Action必须实现该接口的void                                setServletContext(ServletContext context)方法
           6)ServletRequestAware:实现该接口的Action可以直接访问HttpServletRequest对象,Action必须实现该接口的void                         setServletRequest(HttpServletRequest request)方法
           7)ServletResponseAware:实现该接口的Action可以直接访问HttpServletResponse对象,Action必须实现该接口的void                  setServletResponse(HttpServletResponse response)方法
     注意:采用Ioc方式时需要实现上面所示的一些接口,这组接口有一个共同点,接口名称都以Aware结尾。
 在Ioc方式下,可以使用Action实现其中的一个接口,也可以实现全部接口,这根据具体情况而定。
Action对Servlet API有两种访问方式,分别为间接访问和直接访问。对于间接访问方式,一般推荐使用。但是只能获得request对象,而得不到response对象;不推荐使用Ioc访问方式,因为该方式的实现比较麻烦,并且与Servlet API耦合大;推荐使用非Ioc方式,因为实现方式简单,代码量少而又能满足要求。
    
posted @   wojiaohuangyu  阅读(4)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示