如何懒惰地在Spring应用程序中加载LDAP配置。
我有application-context.xml,它有如下所示的bean。
和一个context.xml一样
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++
如果您在我的context.xml中注意到我将资源名称保留为DB_NAME1
我还在application-context.xml文件顶部的beans标记中保留了default-lazy-init =“true” 。 我仍然低于错误
javax.naming.NameNotFoundException: Name [DB_NAME] is not bound in this Context. Unable to find [DB_NAME].
所以我的问题是,如何懒洋洋地加载我的jdbcTemplate / dataSource。
因为在我的应用程序中,一些服务正在攻击数据库,而一些服务正在攻击其他服务。 因此,即使数据库已关闭,其他服务也不应停止工作。
所以我找到了问题的临时解决方案。
写了新的方法,搜索JNDI配置并创建jdbcTemplate,如果它没有这样做,我正在吃exception。
public JdbcTemplate getJdbcTemplate() { try { Context initContext = new InitialContext(); myDataSource = (DataSource) initContext.lookup("java:/comp/env/DBNAME"); myjdbcTemplate = new org.springframework.jdbc.core.JdbcTemplate(dataSource); } catch (Exception e) { e.printStackTrace(); } return jdbcTemplate; }
我每次从我的其他DAOImpl方法调用此方法,如下所示
getJdbcTemplate().query("MySp", args, myBeanRowMapper);
它现在工作。 但如果你看到更好的方法,请在这里回答。
谢谢