我想在Java servlet中使用Spring框架的JdbcTemplate。我已经将一些jdbc配置设置为Java类,并且我想知道加载它并在servlet中使用它的正确方法。放置此代码的最佳位置在哪里:
ApplicationContext ctx = new AnnotationConfigApplicationContext(JdbcConfig.class);
是否应该在每个ApplicationContext
或doGet
方法上创建这个doPost
对象?还是最好一次将其创建为全局变量?
public class MyServlet extends HttpServlet {
// Should it go here as a global variable?
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
// Or Here?
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) {
// Or here?
}
}
我问是因为jdbc配置似乎没有改变,它在创建servlet时加载,然后我只想使用它。同时,我不知道那有多安全。如果两个用户同时加载servlet,并且ApplicationContext
是全局的,那将导致他们在同时运行查询时出现任何问题吗?
通常,出于这种原因,我避免在servlet中使用全局变量。
或者,对每个单个请求加载ApplicationContext
都没什么大不了的吗?
基本上,我想知道如果JdbcConfig
和ApplicationContext
对象在servlet启动时被加载一次,会发生什么情况。它基本上会变成“静态”对象吗?那会产生负面影响吗?
注意,我不使用Spring MVC或Spring Boot,而只是使用普通的Java servlet。
编辑:我的问题是我想了解的方式和原因,而不仅仅是像链接的问题一样进行故障排除。