开发问题积累

Vue 记录

1、给对象新增属性

Vue.set(对象, 新增属性,)

2、去除对象的双向绑定

var 变量 = JSON.parse(JSON.stringigy(对象))

3、处理显示小数保留两位小数点

//数字过滤
{{变量|过滤器}}
//过滤器
filterMoney(value){
	return value.toFixed(2);
}

4、微信二维码生成——wxqrcode.js

5、Vue自定义指令

  1. 封装
    1.1. 操作DOM改样式

6、eCharts 动态化组件——(echarts-tooltip)

import { loopShowTooltip } from '@/utils/js/echarts-tooltip'
const unwarp = (obj) => obj && (obj.__v_raw || obj.valueOf() || obj);
export default { 
	......
	unwarp(myChart).setOption(option);
	if (this.loopShowTooltipIndex == 0) {
	  this.loopShowTooltipIndex = 1
	  this.loopShowTooltipTime = loopShowTooltip(myChart, option, { loopSeries: true, interval: 2000 });
	}
}

SpringCloud记录

1、后台返回Long类型到前台精度丢失

原因解决
js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992。如果超过这个值,那么js会出现不精确的问题。这个值为16位将long类型数据转为String类型,实体类字段加上@JsonSerialize(using =ToStringSerializer.class)
@JsonSerialize(using =ToStringSerializer.class)

2、时间格式处理

实体类时间字段上加注解

注解名称作用
JsonFormat设置时区为上海时区,时间格式自己据需求定,主要是后台到前台的时间格式的转换
DateTimeFormat时间格式自己据需求定,主要是前台到后台的时间格式的转换
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

3、定时任务

  1. 引入依赖
  2. 启动类添加注解@EnableScheduling
  3. 定时任务类中加上@Scheduled
参数作用
fixedRate以固定速率执行。以上表示每隔1秒执行一次
fixedDelay以上一个任务开始时间为基准,从上一任务开始执行后再次调用
cron可以实现定时调用,表达式具体配置可参考corn表达式——用于设置定时任

4、Mybatis动态SQL——<if>

问题解决
动态SQL使用if标签时,将会过滤掉数值为0的条件不用0保存状态,或者判断加上字段==0

5、Shardingsphere分库分表

application.yml

# 服务端口
server:
  port: 8888

# 服务名
spring:
  application:
    name: test-user
  # 配置sharding jdbc分片规则
  shardingsphere:
    datasource:
      # 连接名称(下面要用这个名称来区分库)
      names: ds0,ds1
      ds0:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://192.168.1.19:3306/user0?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: 123
        initialSize: 5      #初始化大小
        maxActive: 200       #最大值
        maxWait: 2000      #最大等待时间,配置获取连接等待超时,时间单位都是毫秒ms
        timeBetweenEvictionRunsMillis: 60000    #配置间隔多久才进行一次检测,检测需要关闭的空闲连接
      ds1:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://192.168.1.19:3306/user1?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: 123
        initialSize: 5      #初始化大小
        maxActive: 200       #最大值
        maxWait: 2000      #最大等待时间,配置获取连接等待超时,时间单位都是毫秒ms
        timeBetweenEvictionRunsMillis: 60000    #配置间隔多久才进行一次检测,检测需要关闭的空闲连接
    # 配置分片规则
    sharding:
      # 按表来区分
      tables:
        us_admin:
          # 配置数据节点
          actualDataNodes: ds${0..1}.us_admin${0..1}
          # 分库策略
          databaseStrategy:
            inline:
              # 分库的规则 用user_id这个字段来分库 总共有两个库 及ds0(user0)与ds1(user1)
              shardingColumn: user_id
              algorithmExpression: ds${user_id % 2}
          # 分表策略
          tableStrategy:
            inline:
              shardingColumn: addr_id
              algorithmExpression: us_admin${addr_id % 2}
          keyGenerator:
            column: id
            type: SNOWFLAKE
      bindingTables:
        us_admin
      broadcastTables:
        t_config
      defaultDataSourceName: ds0

    props:
      sql.show: true

# 配置xml 的扫描路径
mybatis:
  mapper-locations: classpath:mapper/*.xml
  check-config-location: true
  type-aliases-package: com.sharding.sphere.model
  configuration:
    cacheEnabled: true
    mapUnderscoreToCamelCase: true

6、Mybatis IN条件传值类型

        <foreach collection="数组" item="数组项" open="(" separator="," close=")">
            #{数组项}
        </foreach>

工具记录

1、IDEA插件

名称作用
Alibaba Java Coding Guidelines规范检查
POJO TO JSON生成实体类JSON字符串
json viewJSON字符串格式化,便于查看
MybatisX接口到XML的连接,相互跳转
Lombok注解生成实体类get、set等方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值