Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 重建会话工厂_Spring_Hibernate_Sessionfactory - Fatal编程技术网

Spring 重建会话工厂

Spring 重建会话工厂,spring,hibernate,sessionfactory,Spring,Hibernate,Sessionfactory,我希望动态更新会话工厂对象。由于我希望动态更新/更改数据库凭据,并且不重新启动服务器,我希望这些更改反映在数据源中,并重新创建会话工厂 public class DataSourceConfiguration { private String url; private int port; private String userName; private String password; private String schema; @

我希望动态更新会话工厂对象。由于我希望动态更新/更改数据库凭据,并且不重新启动服务器,我希望这些更改反映在数据源中,并重新创建会话工厂

public class DataSourceConfiguration  
{
    private String url;
    private int port;
    private String userName;
    private String password;
    private String schema;

        @Bean(name="dataSource")    
        public DataSource getDataSource()
        {           
            DriverManagerDataSource ds = new DriverManagerDataSource();        
            ds.setDriverClassName("com.mysql.jdbc.Driver");
            String urlPath= "jdbc:mysql://"+url+":"+port+"/"+schema+"?zeroDateTimeBehavior=convertToNull";
            ds.setUrl(urlPath);
            ds.setUsername(userName);
            ds.setPassword(password);           
            return ds;
        }

        @Bean(name = "sessionFactory")
        @Scope("prototype")
        public SessionFactory getSessionFactory() throws Exception 
        {
            Properties properties  = getHibernateProperties();
            LocalSessionFactoryBean factory = new LocalSessionFactoryBean();
            factory.setPackagesToScan(new String[] { "org.netlink.notification.modal" });
            factory.setDataSource(getDataSource());
            factory.setHibernateProperties(properties);
            factory.afterPropertiesSet();
            return factory.getObject();
        }

        @Bean
        public HibernateTransactionManager txManager() 
        {
                try 
                {
                    return new HibernateTransactionManager(getSessionFactory());
                }
                catch (Exception e) 
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return null;
        }


         @Bean
         public Properties getHibernateProperties()
         {
             Properties properties = new Properties();
             properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
             properties.put("hibernate.show_sql", true);             
             return properties;
         }

}

还想知道如何在SpringWeb应用程序中正确重置/重建SessionFactory。