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方式,因为实现方式简单,代码量少而又能满足要求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理