需要导入的jar包:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.4.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.4.RELEASE</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.1.Final</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>2.0.5.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build>
2.configration类的配置
import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource; import java.util.Properties; @Configuration @ComponentScan(basePackages="扫描包范围必须要有") @PropertySource("classpath:app.properties") @EnableJpaRepositories(basePackages = "jpa的扫描范围定义") @EnableTransactionManagement public class Spring_config { @Value("${mysql.driver}") private String driver; @Value("${mysql.url}") private String url; @Value("${mysql.user}") private String username; @Value("${mysql.password}") private String password; @Bean public DataSource dataSource(){ DriverManagerDataSource dataSource=new DriverManagerDataSource(); dataSource.setDriverClassName(driver); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } //注意此处的bean名字必须是entityManagerFactory,不能随意定义,否则找不到这个bean @Bean(name="entityManagerFactory") public LocalContainerEntityManagerFactoryBean factoryBean(){ LocalContainerEntityManagerFactoryBean factoryBean=new LocalContainerEntityManagerFactoryBean(); factoryBean.setDataSource(dataSource()); factoryBean.setPackagesToScan("com.dasun"); factoryBean.setJpaVendorAdapter(jpaVendorAdapter()); Properties props=new Properties(); props.put("hibernate.hbm2ddl.auto","update"); props.put("hibernate.show_sql",true); props.put("hibernate.format_sql",true); factoryBean.setJpaProperties(props); return factoryBean; } @Bean public HibernateJpaVendorAdapter jpaVendorAdapter(){ HibernateJpaVendorAdapter adapter=new HibernateJpaVendorAdapter(); adapter.setDatabasePlatform("org.hibernate.dialect.MySQL5Dialect"); return adapter; } @Bean public JpaTransactionManager transactionManager(){ JpaTransactionManager manager=new JpaTransactionManager(); manager.setDataSource(dataSource()); manager.setEntityManagerFactory(factoryBean().getObject()); return manager; } }