Grzegorz Piwowarek 710c25fb01
Ocheja fix (#3572)
* Define beans for handling different message types in a lean chat app

* Add class based spring beans configuration

* Define spring configuration in XML for constructor based bean injection

* Refactor package structure to separate constructor based bean injection code set from setter based bean injection code set

* Define configuration and classes specific to setter-based bean injection.

* Implement tests for constructor-based and setter-based bean injections

* develop codes for explaining type erasure

* Write unit tests for type erasure examples

* Remove evaluation article code

* Modify type erasure examples and unit tests

* Modify type erasure examples and unit tests

* Add expected exception in TypeErasureUnitTest

* Correct grammar in class name

* Implement File Manager app to demonstrate Polymorphism. Develop unit tests for Polymorphism article code

* Add examples for static polymorphism

* Change sysout statments to slf4j log info statements

* Add assertions and expected errors check on Test

* Add assertions and expected errors check on Test

* Correct compile time error of symbol not found

* Removed commented out non-compiling test.

* Replace string concatenations with String.format

* Replace string concatenations with String.format

* Remove verbose file info descriptor and replace with simpler one

* Add example codes for Hibernate Interceptors article
Write tests for session-scoped and sessionFactory-scoped interceptors

* Implement serializable on customInterceptorImpl

* Implement examples for spring data with spring security integration

* Remove webapp example implementations; too extensive
2018-02-03 12:37:28 +01:00

65 lines
2.7 KiB
Java

package com.baeldung;
import java.util.Properties;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@SpringBootApplication
@PropertySource("classpath:persistence-h2.properties")
@EnableJpaRepositories(basePackages = { "com.baeldung.data.repositories" })
@EnableWebMvc
@Import(SpringSecurityConfig.class)
public class AppConfig extends WebMvcConfigurerAdapter {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
final DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("driverClassName"));
dataSource.setUrl(env.getProperty("url"));
dataSource.setUsername(env.getProperty("user"));
dataSource.setPassword(env.getProperty("password"));
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan(new String[] { "com.baeldung.models" });
em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
em.setJpaProperties(additionalProperties());
return em;
}
final Properties additionalProperties() {
final Properties hibernateProperties = new Properties();
if (env.getProperty("hibernate.hbm2ddl.auto") != null) {
hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
}
if (env.getProperty("hibernate.dialect") != null) {
hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
}
if (env.getProperty("hibernate.show_sql") != null) {
hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
}
return hibernateProperties;
}
}