powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Java Config
2 сообщений из 2, страница 1 из 1
Spring Java Config
    #39289204
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему сначала иницилизируется бин entityManagerFactory а потом dataSourceInitializer
И как можно поменять их местами?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
@Configuration
public class DataSourceConfig {

	@Bean
	public DataSource dataSource() throws Exception {
		EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
		builder.setType(EmbeddedDatabaseType.H2);
		return builder.build();
	}

	@Value("classpath:schema.sql")
	private Resource H2_SCHEMA_SCRIPT;

	@Value("classpath:test-data.sql")
	private Resource H2_DATA_SCRIPT;

	@Bean
	public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
		final DataSourceInitializer initializer = new DataSourceInitializer();
		initializer.setDataSource(dataSource);
		initializer.setDatabasePopulator(databasePopulator());
		return initializer;
	}

	private DatabasePopulator databasePopulator() {
		final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
		populator.addScript(H2_SCHEMA_SCRIPT);
		populator.addScript(H2_DATA_SCRIPT);
		return populator;
	}

}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
@Configuration
public class HibernateConfig {

	@Autowired
	DataSource dataSource;

	private static Properties hibernateProperties() {
		Properties hibernateProperties = new Properties();
		hibernateProperties.setProperty("org.hibernate.envers.audit_table_suffix", "_H");
		hibernateProperties.setProperty("org.hibernate.envers.revision_field_name", "AUDIT_REVISION");
		hibernateProperties.setProperty("org.hibernate.envers.revision_type_field_name", "ACTION_TYPE");
		hibernateProperties.setProperty("org.hibernate.envers.audit_strategy",
				"org.hibernate.envers.strategy.ValidityAuditStrategy");
		hibernateProperties.setProperty("org.hibernate.envers.audit_strategy_validity_end_rev_field_name",
				"AUDIT_REVISION_END");
		hibernateProperties.setProperty("org.hibernate.envers.audit_strategy_validity_store_revend_timestamp", "true");
		hibernateProperties.setProperty("org.hibernate.envers.audit_strategy_validity_revend_timestamp_field_name",
				"AUDIT_REVISION_END_TS");

		hibernateProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
		hibernateProperties.setProperty("hibernate.max_fetch_depth", "3");
		hibernateProperties.setProperty("hibernate.jdbc.fetch_size", "50");
		hibernateProperties.setProperty("hibernate.jdbc.batch_size", "10");
		hibernateProperties.setProperty("hibernate.show_sql", "false");
		return hibernateProperties;
	}

	@Bean
	public HibernateJpaVendorAdapter jpaVendorAdapter() {
		HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
		hibernateJpaVendorAdapter.setShowSql(false);
		hibernateJpaVendorAdapter.setGenerateDdl(true);
		hibernateJpaVendorAdapter.setDatabase(Database.H2);
		return hibernateJpaVendorAdapter;
	}

	@Bean
	public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
		JpaTransactionManager transactionManager = new JpaTransactionManager();
		transactionManager.setEntityManagerFactory(entityManagerFactory);
		return transactionManager;
	}

	@Bean
	public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws Exception {
		HibernateJpaVendorAdapter vendorAdapter = jpaVendorAdapter();

		LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
//		 factory.setPersistenceUnitName("sample");
		factory.setJpaVendorAdapter(vendorAdapter);
		factory.setPackagesToScan("by.lesharb.springtest.domain");
		factory.setDataSource(dataSource);

		factory.setJpaProperties(hibernateProperties());
		factory.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver());

		return factory;
	}
}
...
Рейтинг: 0 / 0
Spring Java Config
    #39290154
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишите чистый код ... понятно что многое спринг делает за вас ...но все же если у вас зависимости пропишите их

пусть даже по умолчанию елси именования дефолтные спринг сам все поймет ... а вдруг ? Будьте фаталистом :)


http://www.concretepage.com/spring/example_dependson_spring


В общем случае : явно укажите @Autowired

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    @Bean(name = "rDataSource")
    public DataSource rDataSource() {
   return dataSource;
  }


   @Autowired
    @Bean(name = "entityManagerFactory")
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("rDataSource") DataSource rDataSource) {

 return em;
}

    @Autowired
    @Bean(name = "transactionManager")
    public PlatformTransactionManager transactionManager(@Qualifier("entityManagerFactory") LocalContainerEntityManagerFactoryBean entityManagerFactory) {
        JpaTransactionManager txManager = new JpaTransactionManager();
        txManager.setEntityManagerFactory(entityManagerFactory.getObject());
        return txManager;
    }
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Java Config
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]