当前位置:Gxlcms > 数据库问题 > Spring容器初始化数据(数据库)BeanPostProcessor的应用

Spring容器初始化数据(数据库)BeanPostProcessor的应用

时间:2021-07-01 10:21:17 帮助过:23人阅读

class PropUtil implements BeanPostProcessor{ public static Map<String, Object> map = new HashMap<String, Object>(); @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if("dataSource".equals(beanName)){ DataSource ds = (DataSource)(bean); Connection conn = null;
       PreparedStatement pm = null;
try { conn = ds.getConnection(); pm = conn.prepareStatement("select * from model"); ResultSet rs = pm.executeQuery(); while(rs.next()){ System.out.println(rs.getString("modelId")); System.out.print(rs.getString("modelName"));//这里可以针对于不同的数据,保存在对应的map中做静态数据加载,方便其他方法调用 } } catch (SQLException e) { e.printStackTrace(); }finally { try { conn.close();
            pm.close(); }
catch (SQLException e) { e.printStackTrace(); } } } return bean; } @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } }

5、刷新数据

  1)因为数据存在变动的情况,固写入一个刷新机制

  2)将对应的操作方式加入到线程里面,这样只需要启动一次服务器,就可以实现数据和配置的更新

6、问题:

  1)此方式会对所有bean加载进行一次过滤,在初始化启动的会后会造成相应的效率启动问题

  2)我在利用线程实现5分钟刷新静态变量的更新的时候,存在只加载一次,线程没有再启动的问题

  

Spring容器初始化数据(数据库)BeanPostProcessor的应用

标签:解释   factory   model   throws   override   getc   ati   class   post   

人气教程排行