Spring Request scope vs java thread-local

If we consider the traditional Java approach the answer can be deducted from the quote bellow as being much slower:

Because reflection involves types that are dynamically resolved,
certain Java virtual machine optimizations can not be performed.
Consequently, reflective operations have slower performance than their
non-reflective counterparts, and should be avoided in sections of code
which are called frequently in performance-sensitive applications.

Quoted from the JavaDoc about reflection – http://java.sun.com/docs/books/tutorial/reflect/index.html

So since Spring uses Reflection with the getBean() method the SpringContext.getBean(SomeClass.class); approach should be slower.

EDIT:

Also note that the ThreadLocal also has caching embedded so as long as you reuse information in those threads it’s for sure faster.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)