之前SpringBoot出来时候就看了下Springboot,感觉的确精简掉了配置文件!

还是很方便的!没办法,我只是个菜鸟!

什么怎么启动Springboot什么的就不说了,

   具体的Demo地址我都是放在github上面,因为只有Demo才能更直观的学习和进去!

对其中出现的注解:

这里时对jpa进行的多数据源

        

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef="entityManagerFactorySecondary",
transactionManagerRef="transactionManagerSecondary",//这些都是默认的,看源码就知道了
basePackages= { "springboot.domain.s" }) //设置Repository所在位置 这些注解是为了注册和配置一个数据源具体操作的实体类有

代码:

 package springboot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.persistence.EntityManager;
import javax.sql.DataSource;
import java.util.Map; @Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef="entityManagerFactorySecondary",
transactionManagerRef="transactionManagerSecondary",
basePackages= { "springboot.domain.s" }) //设置Repository所在位置
public class SecondaryConfig { @Autowired @Qualifier("secondaryDataSource")
private DataSource secondaryDataSource; @Bean(name = "entityManagerSecondary")
public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
return entityManagerFactorySecondary(builder).getObject().createEntityManager();
} @Bean(name = "entityManagerFactorySecondary")
public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) {
return builder
.dataSource(secondaryDataSource)
.properties(getVendorProperties(secondaryDataSource))
.packages("springboot.domain.s") //设置实体类所在位置
.persistenceUnit("secondaryPersistenceUnit")
.build();
} @Autowired
private JpaProperties jpaProperties; private Map<String, String> getVendorProperties(DataSource dataSource) {
return jpaProperties.getHibernateProperties(dataSource);
} @Bean(name = "transactionManagerSecondary")
PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject());
} }

其实都是固定的形式,你想挖掘就自己点进去看看,

当然这是数据源中得一个,另外一个也是一样的,

说到这:我们肯定要有配置数据源的配置文件,不然讲毛用都没!

application.properties

 spring.datasource.primary.url=jdbc:mysql://localhost:3306/test1
spring.datasource.primary.username=root
spring.datasource.primary.password=123456
spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver spring.datasource.secondary.url=jdbc:mysql://localhost:3306/test2
spring.datasource.secondary.username=root
spring.datasource.secondary.password=123456
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver
server.port=80
spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop

讲到配置文件中得二个数据源,那么我们怎么获取到这二个数据源呢,如何加载进数据源呢,-----------------------------

-------------------擦--------------------------擦----------------------摩擦---------------------------------

 package springboot.datasource.config;

 import javax.sql.DataSource;

 import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; @Configuration
public class DataSourceConfig { /**
* 主数据源
* @return
*/
@Bean(name = "primaryDataSource")
@Qualifier("primaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.primary")//读取配置文件中注册数据源,对@bean不熟悉的可以看我Spring文章中一个有这篇文章
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
/**
* 子数据源
* @return
*/
@Bean(name = "secondaryDataSource")
@Qualifier("secondaryDataSource")
@Primary
@ConfigurationProperties(prefix="spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
} }

剩下的部分,就是你该干嘛干嘛了,该建啥建啥。。。。。

贴下pom.xml

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>tbnb.cn</groupId>
<artifactId>SpringBootMuchDataSource</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

        -----加油!Z先生

最新文章

  1. adobe dreameaver cs5 禁止更新
  2. 寻找表达式(dfs)
  3. Mysql常用命令行大全——转载
  4. Eclipse常用的插件安装
  5. Things App Engine Doesn&#39;t Do...Yet
  6. php学习-快速开发框架thinkphp-day1
  7. js事件对象--DOM中的事件对象/IE中的事件对象/跨浏览器的事件对象
  8. Oracle三组难缠的hint no_unnest/unnest,push_subq,push_pred--平展化(转)
  9. _CrtMemBlockHeader
  10. Vlc for Android 全面阐述
  11. IntPtr问题
  12. JVM调优总结(四)-垃圾回收面临的问题
  13. UVa 496 - Simply Subsets
  14. lxd-启动篇分析
  15. quartz的一些记录
  16. 聊一聊快速排序(Js)
  17. WMI Explorer操作 和 powershell命令
  18. pcntl_exec()
  19. win10 Faster-RCNN训练自己数据集遇到的问题集锦 (转)
  20. logstash 常用参数

热门文章

  1. Centos6.8 下 Node.js 的安装
  2. css学习之overlay
  3. arm linux c++11编译
  4. chrome 浏览器 的一些控制台技巧
  5. eclipse Alt+/ 无法提示代码
  6. 【转载】Highcharts使用指南
  7. strex,ldrex
  8. linux mysql 5.7.17 编译安装小记
  9. iOS masonry布局在iOS11/12上正常 iOS9/10却异常
  10. linux嵌入式大神的博客文章---持续更新中