我正在开发Spring Web应用程序,其中许多用户同时与数据库进行交互。我正在使用SpringJdbcTemplete与数据库进行通信。我有以下两个bean定义。 我只需要一个数据源,因此它的defult范围应该是Singleton。我有 jdbcTemplate bean自动连接到不同的服务类(管理员和用户服务类)。因为我的应用程序用户可以同时访问这个jdbcTempelete实例,它的defult范围应该是什么..?
我发现它应该是Singleton。但是如果它是Singleton,它将只创建一个实例并在许多请求用户之间共享。在这个secenerio假设1000用户尝试访问jdbcTemplate同时999用户必须等待获取它。我是错的,如果是,请帮助避免我的困惑。感谢
答案 0 :(得分:0)
如JdbcTemplate
javadoc中所述,该类在构造后是线程安全的。因此,只要JdbcTemplate
的实例可用,就可以在不同的线程之间共享。
JdbcTemplate
是线程安全的,可以在多个线程之间同时使用。
当bean是线程安全的时候,没有什么能阻止你在任意数量的线程之间使用单个实例。
有关使用Spring和JDBC Access的更多信息,请参阅the reference guide