在Java Servlet的Spring JdbcTemplate中,如何正确访问ApplicationContext?

时间:2019-02-15 17:07:13

标签: java spring servlets spring-jdbc

我想在Java servlet中使用Spring框架的JdbcTemplate。我已经将一些jdbc配置设置为Java类,并且我想知道加载它并在servlet中使用它的正确方法。放置此代码的最佳位置在哪里:

ApplicationContext ctx = new AnnotationConfigApplicationContext(JdbcConfig.class);

是否应该在每个ApplicationContextdoGet方法上创建这个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都没什么大不了的吗?

基本上,我想知道如果JdbcConfigApplicationContext对象在servlet启动时被加载一次,会发生什么情况。它基本上会变成“静态”对象吗?那会产生负面影响吗?

注意,我不使用Spring MVC或Spring Boot,而只是使用普通的Java servlet。

编辑:我的问题是我想了解的方式和原因,而不仅仅是像链接的问题一样进行故障排除。

0 个答案:

没有答案