集成多数据源
This commit is contained in:
@@ -1,18 +1,17 @@
|
||||
package com.xwbing.datasource;
|
||||
|
||||
|
||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
||||
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
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.annotation.Resource;
|
||||
import javax.persistence.EntityManager;
|
||||
@@ -20,12 +19,13 @@ import javax.sql.DataSource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2018/5/31 21:38
|
||||
* 作者: xiangwb
|
||||
* 说明: JpaDataSourceConfig
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2017/12/10 16:36
|
||||
* 作者: xiangwb
|
||||
*/
|
||||
@Configuration
|
||||
@EnableTransactionManagement
|
||||
@PropertySource("classpath:druid.properties")
|
||||
@EnableJpaRepositories(
|
||||
entityManagerFactoryRef = "jpaEntityManagerFactory",
|
||||
@@ -41,21 +41,39 @@ public class JpaDataSourceConfig {
|
||||
return DruidDataSourceBuilder.create().build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 配置entityManagerFactory
|
||||
*
|
||||
* @param builder
|
||||
* @return
|
||||
*/
|
||||
@Bean(name = "jpaEntityManagerFactory")
|
||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) {
|
||||
return builder
|
||||
.dataSource(dataSource())
|
||||
.properties(getProperties(dataSource()))
|
||||
.properties(getVendorProperties(dataSource()))
|
||||
.packages("com.xwbing.domain.entity")
|
||||
.persistenceUnit("jpaPersistenceUnit")
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 配置entityManager
|
||||
*
|
||||
* @param builder
|
||||
* @return
|
||||
*/
|
||||
@Bean(name = "japEntityManager")
|
||||
public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
|
||||
return entityManagerFactory(builder).getObject().createEntityManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* 配置事务
|
||||
*
|
||||
* @param builder
|
||||
* @return
|
||||
*/
|
||||
@Bean(name = "jpaTransactionManager")
|
||||
public PlatformTransactionManager dataSourceTransactionManager(EntityManagerFactoryBuilder builder) {
|
||||
return new JpaTransactionManager(entityManagerFactory(builder).getObject());
|
||||
@@ -67,7 +85,7 @@ public class JpaDataSourceConfig {
|
||||
* @param dataSource
|
||||
* @return
|
||||
*/
|
||||
private Map<String, String> getProperties(DataSource dataSource) {
|
||||
private Map<String, String> getVendorProperties(DataSource dataSource) {
|
||||
return jpaProperties.getHibernateProperties(dataSource);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,28 +26,28 @@ import java.util.List;
|
||||
public class SysUser extends BaseEntity {
|
||||
private static final long serialVersionUID = -2447528751353457021L;
|
||||
public static String table = "sys_user_info";
|
||||
@ApiModelProperty(value = "用户名",example = "xxx",required = true)
|
||||
@NotBlank(message = "用户名不能为空")
|
||||
@Length(min = 1, max = 20, message = "用户名长度为1-20")
|
||||
@ApiModelProperty(value = "用户名", required = true)
|
||||
@Column(name = "user_name")
|
||||
private String userName;
|
||||
@ApiModelProperty(value = "姓名",example = "xxx",required = true)
|
||||
@NotBlank(message = "姓名不能为空")
|
||||
@Length(min = 1, max = 5, message = "姓名长度为1-5")
|
||||
@Length(min = 1, max = 20, message = "姓名长度为1-5")
|
||||
@ApiModelProperty(value = "姓名", required = true)
|
||||
private String name;
|
||||
@ApiModelProperty(value = "邮箱",example = "@163.com",required = true)
|
||||
@NotBlank(message = "邮箱不能为空")
|
||||
@Email(message = "邮箱格式有误")
|
||||
@ApiModelProperty(value = "邮箱", example = "@163.com", required = true)
|
||||
private String mail;
|
||||
@ApiModelProperty(value = "性别",example = "1",required = true)
|
||||
@NotBlank(message = "性别不能为空")
|
||||
@Pattern(regexp = "[01]", message = "性别格式为0|1,0代表女,1代表男")
|
||||
@ApiModelProperty(value = "性别(0|1)", example = "1", required = true)
|
||||
private String sex;
|
||||
@ApiModelProperty(value = "盐值",hidden = true)
|
||||
@ApiModelProperty(value = "盐值", hidden = true)
|
||||
private String salt;
|
||||
@ApiModelProperty(value = "密码",hidden = true)
|
||||
@ApiModelProperty(value = "密码", hidden = true)
|
||||
private String password;
|
||||
@ApiModelProperty(value = "是否为管理员",hidden = true)
|
||||
@ApiModelProperty(value = "是否为管理员", hidden = true)
|
||||
@Column(name = "is_admin")
|
||||
private String isAdmin;
|
||||
//临时字段
|
||||
@@ -61,5 +61,4 @@ public class SysUser extends BaseEntity {
|
||||
private transient List<SysAuthority> menus;
|
||||
@ApiModelProperty(hidden = true)
|
||||
private transient List<SysAuthority> buttons;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.xwbing.domain.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 项目名称: boot-module-demo
|
||||
* 创建时间: 2018/6/2 10:32
|
||||
* 作者: xiangwb
|
||||
* 说明: 基础mapper
|
||||
*/
|
||||
public interface BaseMapper<T> {
|
||||
int save(T t);
|
||||
|
||||
int saveBatch(List<T> list);
|
||||
|
||||
int deleteById(String id);
|
||||
|
||||
int deleteByIds(String[] ids);
|
||||
|
||||
int delete(Map<String, Object> map);
|
||||
|
||||
int update(T t);
|
||||
|
||||
int updateBatch(List<T> list);
|
||||
|
||||
T findById(String id);
|
||||
|
||||
List<T> find(Map<String, Object> map);
|
||||
|
||||
List<T> findAll();
|
||||
}
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
package com.xwbing.domain.mapper;
|
||||
package com.xwbing.domain.mapper.sys;
|
||||
|
||||
import com.xwbing.domain.entity.sys.SysUser;
|
||||
import com.xwbing.domain.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -10,7 +11,7 @@ import java.util.List;
|
||||
* 作者: xiangwb
|
||||
* 说明:
|
||||
*/
|
||||
public interface SysUserMapper {
|
||||
public interface SysUserMapper extends BaseMapper<SysUser> {
|
||||
// @Select("select * from sys_user_info")
|
||||
List<SysUser> findall();
|
||||
int save(SysUser sysUser);
|
||||
@@ -1,9 +1,9 @@
|
||||
##jdbc配置#####################################
|
||||
##jdbc配置##
|
||||
db1.driver-class-name=com.mysql.jdbc.Driver
|
||||
db1.url=jdbc:mysql://127.0.0.1:3306/xwbing?useUnicode=true&characterEncoding=utf8&useSSL=false
|
||||
db1.username=root
|
||||
db1.password=xwbing
|
||||
##连接池配置###############################
|
||||
##连接池配置##
|
||||
# 初始化大小,最小,最大
|
||||
db1.initial-size=1
|
||||
db1.min-idle=3
|
||||
@@ -28,28 +28,6 @@ db1.filters=stat,wall,slf4j
|
||||
db1.connect-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
||||
# 合并多个DruidDataSource的监控数据
|
||||
#db1.useGlobalDataSourceStat=true
|
||||
##WebStatFilter配置###################################
|
||||
db1.web-stat-filter.enabled=false
|
||||
db1.web-stat-filter.url-pattern=/*
|
||||
db1.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
|
||||
#sesison统计
|
||||
db1.web-stat-filter.session-stat-enable=true
|
||||
db1.web-stat-filter.session-stat-max-count=1000
|
||||
db1.web-stat-filter.principal-session-name=
|
||||
db1.web-stat-filter.principal-cookie-name=
|
||||
#监控单个url调用的sql列表
|
||||
db1.web-stat-filter.profile-enable=true
|
||||
##StatViewServlet配置###############################
|
||||
db1.stat-view-servlet.enabled=true
|
||||
db1.stat-view-servlet.url-pattern=/druid/*
|
||||
#禁用HTML页面上的"Reset All"功能
|
||||
db1.stat-view-servlet.reset-enable=true
|
||||
db1.stat-view-servlet.login-username=admin
|
||||
db1.stat-view-servlet.login-password=123456
|
||||
#IP白名单(没有配置或者为空,则允许所有访问)
|
||||
db1.stat-view-servlet.allow=
|
||||
#IP黑名单(存在共同时,deny优先于allow)
|
||||
db1.stat-view-servlet.deny=
|
||||
###########################################################################################################
|
||||
db2.driver-class-name=com.mysql.jdbc.Driver
|
||||
db2.url=jdbc:mysql://127.0.0.1:3306/xwbing?useUnicode=true&characterEncoding=utf8&useSSL=false
|
||||
@@ -69,4 +47,27 @@ db2.pool-prepared-statements=true
|
||||
db2.max-pool-prepared-statement-per-connection-size=20
|
||||
db2.filters=stat,wall,slf4j
|
||||
db2.connect-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
||||
#db2.useGlobalDataSourceStat=true
|
||||
#db2.useGlobalDataSourceStat=true
|
||||
###########################################################################################################
|
||||
##WebStatFilter配置##
|
||||
spring.datasource.druid.web-stat-filter.enabled=false
|
||||
spring.datasource.druid.web-stat-filter.url-pattern=/*
|
||||
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
|
||||
#sesison统计
|
||||
spring.datasource.druid.web-stat-filter.session-stat-enable=true
|
||||
spring.datasource.druid.web-stat-filter.session-stat-max-count=1000
|
||||
spring.datasource.druid.web-stat-filter.principal-session-name=
|
||||
spring.datasource.druid.web-stat-filter.principal-cookie-name=
|
||||
#监控单个url调用的sql列表
|
||||
spring.datasource.druid.web-stat-filter.profile-enable=true
|
||||
##StatViewServlet配置##
|
||||
spring.datasource.druid.stat-view-servlet.enabled=true
|
||||
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
|
||||
#禁用HTML页面上的"Reset All"功能
|
||||
spring.datasource.druid.stat-view-servlet.reset-enable=true
|
||||
spring.datasource.druid.stat-view-servlet.login-username=admin
|
||||
spring.datasource.druid.stat-view-servlet.login-password=123456
|
||||
#IP白名单(没有配置或者为空,则允许所有访问)
|
||||
spring.datasource.druid.stat-view-servlet.allow=
|
||||
#IP黑名单(存在共同时,deny优先于allow)
|
||||
spring.datasource.druid.stat-view-servlet.deny=
|
||||
+5
-2
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.xwbing.domain.mapper.SysUserMapper">
|
||||
<mapper namespace="com.xwbing.domain.mapper.sys.SysUserMapper">
|
||||
<resultMap id="BaseResultMap" type="sysUser">
|
||||
<id column="id" property="id"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
@@ -8,7 +8,10 @@
|
||||
<result column="user_name" property="userName"/>
|
||||
<result column="is_admin" property="isAdmin"/>
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<sql id="table">
|
||||
sys_user_info
|
||||
</sql>
|
||||
<sql id="base_column">
|
||||
user_id, user_name, password, phone
|
||||
</sql>
|
||||
<insert id="save" parameterType="com.xwbing.domain.entity.sys.SysUser" >
|
||||
@@ -11,7 +11,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
*/
|
||||
@SpringBootApplication
|
||||
public class Application {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(Application.class, args);
|
||||
}
|
||||
|
||||
@@ -5,8 +5,7 @@ import com.xwbing.annotation.LogInfo;
|
||||
import com.xwbing.domain.entity.ExpressInfo;
|
||||
import com.xwbing.domain.entity.sys.SysUser;
|
||||
import com.xwbing.domain.entity.vo.ExpressInfoVo;
|
||||
import com.xwbing.domain.mapper.SysUserMapper;
|
||||
import com.xwbing.exception.BusinessException;
|
||||
import com.xwbing.domain.mapper.sys.SysUserMapper;
|
||||
import com.xwbing.rabbit.Sender;
|
||||
import com.xwbing.redis.RedisService;
|
||||
import com.xwbing.service.rest.CookieSessionService;
|
||||
@@ -56,6 +55,7 @@ public class TestControl {
|
||||
@PostMapping("save")
|
||||
public void save(@RequestBody SysUser sysUser) {
|
||||
int save = sysUserMapper.save(sysUser);
|
||||
sysUserMapper.save(sysUser);
|
||||
System.out.println("shiwi");
|
||||
}
|
||||
@GetMapping("send")
|
||||
|
||||
Reference in New Issue
Block a user