Gna*_*nam 16 java session jakarta-mail
Session.getDefaultInstance(props, authenticator)和之间有什么区别getInstance(props, authenticator)?一般来说,你何时会选择一个而不是另一个?
我还在getDefaultInstance(props,authenticator)上阅读了Java doc ,但仍然无法清楚地/清楚地看出差异.
希望专家可以帮助我更好地理解这一点.
更新:触发提出这个问题的实际原因是:我们在Session.getDefaultInstance()基于Web的应用程序中的某些地方使用了方法.有时,它会抛出java.lang.SecurityException: Access to default session denied,快速谷歌搜索,它建议使用Session.getInstance()方法代替.因此,当一个人选择一个而不是另一个?
Cod*_*nci 19
如果你阅读文档,你会看到
getDefaultInstance 获取默认的Session对象.如果尚未设置默认值,则会创建一个新的Session对象并将其安装为默认值.
因此,如果尚不存在,则调用getInstance()
getInstance 获取一个新的Session对象.
因此,无论是否已存在,都会创建一个新的会话对象.
常见问题说:https : //javaee.github.io/javamail/FAQ#getdefaultinstance
Q:什么时候用
Session.getDefaultInstance,什么时候用Session.getInstance?A:几乎所有的代码都应该使用
Session.getInstance. 该Session.getDefaultInstance方法在第一次被调用时使用传递的属性创建一个新会话。后续调用将返回原始会话并忽略您传入的任何属性。如果您想创建具有不同属性的不同会话,Session.getDefaultInstance 不会这样做。如果同一 JVM 中的其他代码(例如,在同一应用服务器中)已经使用它们的属性创建了默认 Session,您可能最终会使用它们的 Session 并且您的属性将被忽略。这通常解释了为什么您的属性设置似乎被忽略了。始终使用Session.getInstance以避免此问题。
| 归档时间: |
|
| 查看次数: |
27750 次 |
| 最近记录: |