需求说明
做项目时,为了省事,起初把初始化的配置都放在每个类中 static加载,初始化配置一多,就想把它给整理一下,这里使用servlet中的init方法初始化。
web.xml说明
首先了解下web.xml中元素的加载顺序:
- 启动web项目后,web容器首先回去找web.xml文件,读取这个文件
- 容器会创建一个 ServletContext ( servlet 上下文),整个 web 项目的所有部分都将共享这个上下文
- 容器将 转换为键值对,并交给 servletContext
- 容器创建 中的类实例,创建监听器
- 容器加载filter,创建过滤器, 要注意对应的filter-mapping一定要放在filter的后面
- 容器加载servlet,加载顺序按照 Load-on-startup 来执行
完整加载顺序:ServletContext -> context-param -> listener-> filter -> servlet
配置实现
InitServlet.java:
public class InitServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override public void init(){ try { if(Constants.PAY_URL.size()==0){ List<CommonEntity> listPayUrl = PropertiesListUtil.listPayUrl(); for(CommonEntity entity:listPayUrl){ Constants.PAY_URL.put(entity.getEntityCode(), entity.getEntityName()); } } LogUtil.info("佛祖保佑 永不宕机 永无BUG :初始化系统数据数量:"+Constants.PAY_URL.size()); Configs.init("zfbinfo.properties"); LogUtil.info("初始化支付宝配置信息"); SDKConfig.getConfig().loadPropertiesFromSrc(); LogUtil.info("初始化银联支付配置信息"); } catch (Exception e) { e.printStackTrace(); } } @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Constants.PAY_URL = new ConcurrentHashMap<String, String>(); List<CommonEntity> listPayUrl = PropertiesListUtil.listPayUrl(); for(CommonEntity entity:listPayUrl){ Constants.PAY_URL.put(entity.getEntityCode(), entity.getEntityName()); } LogUtil.info("初始化系统数据数量:"+Constants.PAY_URL.size()); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机JavaWeb中web.xml初始化加载顺序详解
后端开发2023-05-31
Android中多个ContentProvider的初始化顺序详解
后端开发2024-04-02
详解Java中类的加载与其初始化
后端开发2022-12-15
详解Spring 中如何控制2个bean中的初始化顺序
后端开发2023-05-31
Spring初始化与销毁顺序案例演示详解
后端开发2023-02-07
Spring中Bean的加载与SpringBoot的初始化流程详解
后端开发2024-04-02
SpringBoot中的Bean的初始化与销毁顺序解析
后端开发2024-04-02
咦!没有更多了?去看看其它编程学习网 内容吧