为了账号安全,请及时绑定邮箱和手机立即绑定

为什么JavaEE中的Servlet类在初始化的时候,使用init()方法来获取参数,在类中定义字段

为什么JavaEE中的Servlet类在初始化的时候,使用init()方法来获取参数,在类中定义字段

炎炎设计 2019-02-06 17:20:08
使用init()方法,还需要读取xml,这不是更消耗性能的设计吗?如果直接设计成字段,岂不是既方便又省性能。
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果用getInitParameter()的话,确实是读取WEB-INF/web.xml的参数(Servlet 3.0以后,也可以读取@WebServlet@WebFilter注解里的参数)。
我觉得,比起读取类中的成员,读web.xml唯一的好处是:

类修改了还需要编译和部署,但web.xml修改后自动触发ServletContext重启,不需要编译,会很方便。

另外,项目复杂的话,初始化参数(如数据库连接串、依赖的外部API地址、第三方接口帐号等)的来源会是多样的,比如:

  • Spring等框架规定的容器

  • 服务器上其他位置的配置文件

  • 数据库或其他存储

  • 配置中心

总之,与环境相关的配置,无论写在代码里还是写在web.xml里,似乎都不是很好的选择。


查看完整回答
反对 回复 2019-02-16
  • 1 回答
  • 0 关注
  • 823 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信