Witam, chciałem podpiąć pod prostą aplikacje spring mvc hiernate'a. Config wygląda tak:

@Configuration
@PropertySource("classpath:db.properties")
@EnableTransactionManagement
public class JdbcConfig
{
    @Autowired
    Environment env;

    @Bean
    public DataSource dataSource()
    {
        DriverManagerDataSource ds = new DriverManagerDataSource();
        ds.setDriverClassName(env.getProperty("dataSource.driverClassName"));
        ds.setUrl(env.getProperty("dataSource.Url"));
        ds.setUsername(env.getProperty("dataSource.username"));
        ds.setPassword(env.getProperty("dataSource.password"));
        return ds;

    }


    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(DataSource ds, JpaVendorAdapter jpaVendorAdapter)
    {
        LocalContainerEntityManagerFactoryBean emfb = new LocalContainerEntityManagerFactoryBean();
        emfb.setDataSource(ds);
        emfb.setJpaVendorAdapter(jpaVendorAdapter);
        emfb.setPackagesToScan("app.model");
        return emfb;
    }

    @Bean
    public JpaVendorAdapter jpaVendorAdapter()
    {
        HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
        adapter.setDatabase(Database.POSTGRESQL);
        adapter.setShowSql(true);
        adapter.setGenerateDdl(true);
        adapter.setDatabasePlatform(env.getProperty("dialect"));

        return adapter;
    }

    @Bean
    public JpaTransactionManager jpaTransactionManager(EntityManagerFactory em)
    {
        return new JpaTransactionManager(em);
    }
}

Na początku chciałbym żeby ktoś rzucił okiem czy tan konfiguracja jest poprawna i czy przypadkiem nie "zgubiłem" jakiego Bean'a. Pierwszym problem na jaki sie natkąłem to NullPointerException po tym jak dodałem

PersistenceAnnotationBeanPostProcessor Bean

do configu(http://pastebin.com/1BcLA3kC). Połączenie z bazą jest poprawne, ręczna obsługa transakcji działa, ddl przechodzi i ttworzy odpowiednie tabele. Zaczałem szukać błedu gdzie indziej. Problem sie pojawił przy transakcjach. Mam klase z adnotacjami @Repository, @Transacional. Niestety transakcje nie chcą mi sie otwierać ani zamykać. Gdzie jest problem? Co nie tak skonfigurowałem? Skąd ten Exception przy PersistenceAnnotationBeanPostProcessor

Edit:
Problem powodował

@PropertySource

, okazało się że gdy w configu nie ma PersistenceAnnotationBeanPostProcessor pole Environment zawiera wszystko co potrzebne do połączenia z bazą w momencie kiedy dodaje tego Bean do configu Environment od razu jest nullem i stąd ten problem. Teraz pytanie jak i dlaczego PersistenceAnnotationBeanPostProcessor ma wpływ na PropertySource i klase Environment i w jaki sposób moge to naprawić? @Shalom mógłbyś rzucić okiem ? :)