- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 通过注解实现AOP日志 简单入门,萌新
AOP日志1通过注解的方式实现 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>1.1定义注解/** * 自定义操作日志注解 * @author wu */@Target(ElementType.METHO
2020-12-13 01:59:29 272 1
原创 spring boot整合logback和mybatis
1.整合mybatis在yml中配置mybatis: config-location: classpath:mybatis/mybatis-config.xml logging: config: classpath:logback.xmlmybatis-config<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD
2020-12-08 00:21:21 474
原创 sql server和mysql常用sql语法 简单,萌新
mysql和sql server常用方法数据库sql积累0.触发器1.mysql2.sql serverCREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件(之前/之后) on 表名字 FOR EACH ROW BEGIN执行语句列表ENDCREATE TRIGGER [dbo].[Untitled]ON [dbo].[DY_PRO_MODULE_SECURITY]WITH EXECUTE AS CALLERFOR INSERT, UPDATE --针对
2020-12-08 00:08:34 654
原创 1.spring security简单的demo-适合萌新
1.spring security入门decurity-demo.sql 数据库验证的文件密码是123或者123456/ 可以使用 new BCryptPasswordEncoder_().encode(“123”)_;加密出来模板项目地址https://gitee.com/find_me/java-findme1.创建项目,引入依赖 <dependency> <groupId>org.springframework.boot</groupId
2020-12-08 00:05:55 1459
原创 一文教你实现自定义注解实现自己的java组件
不知道大家看到@Enablexxxx有没有很熟悉的感觉,例如: @EnableDiscoveryClient 微服务使用这些 注解提供了很多丰富的功能 ,那我们是不是也可以使用这样的形式提供丰富的功能
2021-12-29 17:25:32 476
原创 从nacos中读取自定义配置文件的两种方案
1.通过配置实现1.bootstrap配置2.通过实现InitializingBean接口实现NacosConfig.java@Configurationpublic class NacosConfig { /** * 前提条件 要求 serverAddr、namespace、group使用bootstrap.yml 中 spring cloud nacos config 的。 * @return */ @Bean public Map
2021-12-24 17:11:11 4374
原创 从nacos读取自定义文件
1.通过配置实现1.bootstrap配置2.通过实现InitializingBean接口实现NacosConfig.java@Configurationpublic class NacosConfig {/*** 前提条件 要求 serverAddr、namespace、group使用bootstrap.yml 中 spring cloud nacos config 的。* @return*/@Beanpublic Map<String, Class> nacosCon
2021-12-24 17:04:46 1642
转载 10 万条数据批量更新,怎么做?
1、replace into 批量更新replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y');2、insert into …on duplicate key update 批量更新insert into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y') on duplicate key update dr=values(dr);3.创建临时表,先更新临时表,然后从临时表
2021-11-16 15:56:49 3087
转载 10万条数据批量插入,到底怎么做才快?
1. 思路分析批量插入这个问题,我们用 JDBC 操作,其实就是两种思路吧:用一个 for 循环,把数据一条一条的插入(这种需要开启批处理)。生成一条插入 sql,类似这种 insert into user(username,address) values(‘aa’,‘bb’),(‘cc’,‘dd’)…。到底哪种快呢?我们从两方面来考虑这个问题:插入 SQL 本身执行的效率。网络 I/O。先说第一种方案,就是用 for 循环循环插入:这种方案的优势在于,JDBC 中的 Prepa
2021-11-16 15:55:57 1985
转载 java泛型和通配符相关
java泛型1,概述什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数
2021-05-27 16:18:30 170 1
转载 java注解和反射的基本知识整理
1.注解的使用1.自定义注解元注解主要分为以下几个1.@Retention 标识在什么时候起作用2.@Target 作用范围3.@Inherited 所标记的类的子类也会拥有这个注解4.@Document 表明该注解标记的元素可以被Javadoc 或类似的工具文档化JDK中有一些元注解,主要有@Target,@Retention,@Document,@Inherited用来修饰注解。@Target表明该注解可以应用的java元素类型Target类型描述ElementT
2021-05-27 15:38:08 98
原创 IDEA搭建多模块项目
1.建立父类maven项目dmk1.1父模块的pom.xm;<?xml version="1.0" encoding="UTF-8"?><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.
2021-05-26 11:27:34 1337
原创 基于redis的唯一流水号生成
方案1 :使用redis的incr自增实现唯一序号,实现1 private static String QUOTATION_PREFIX = "BJD"; private static String QUOTATION_INIT = "0000";public String generateQuotationNumber() { //格式:T+yyyyMMdd+4位流水 StringBuffer sbuffer = new StringBuffer()
2021-05-26 11:11:23 713
原创 spring boot实现redis的订阅发布者 萌新入门
1.redis的订阅发布者1.redis控制台实现subscribe c1 c2 c3 订阅 c1 c2 c3publish c1 “hello” 对c1 发消息2.代码实现1.pom和配置文件和代码目录<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifac
2021-05-13 16:05:58 267 3
转载 基于Redis的redisson框架实现分布式单号,按照有序生成分布式ID(自定义规则生成)
一、一些业务背景下,业务要求单号需要按照不同的业务进行生成不同前缀单号。那么在分布式的架构下如何自定义单号而且还能保证唯一呢? 二、当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高效的设计分布式锁,这里我认为以下几点是必须要考虑的。 1、互斥 在分布式高并发的条件下,我们最需要保证,同一时刻只能有一个线程获得锁,这是最基本的一点。 2、防止死锁 在分布式高并发的条件下,...
2021-04-21 15:53:50 621
原创 java实现邮件发送的几种方式
文章目录简单的邮件发送1.简单的 邮件发送---mail1.1引入依赖1.2配置参数1.3邮件发送的几种方式1.3.1简单的邮件发送1.3.2带附件的邮件发送1.3.3邮件正文携带图片1.3.4使用thymeleaf模板引擎作为邮件发送模板 (相对简单,有自动化配置)1.3.5使用freemarker做邮件模板简单的邮件发送1.简单的 邮件发送—mail1.1引入依赖 <dependency> <groupId>org.springframework
2020-12-13 20:21:48 1218 2
原创 js精度丢失问题和js浅拷贝和深拷贝问题
1.js精度丢失问题今天来说遇到的几个很奇怪的问题 js在对大整数进行使用的时候产生精度丢失直白来说,js存储使用的是64个bit位,其中 1位是符号位,11位表示指数,还剩下52位是用来表示数据的 也就是,最大是2的53次方也就是大于9007199254740994实际上对于大于这个数的数据加减会出现精度丢失,这是因为,此时在模仿十进制进行,四舍五入,所以导致此问题2.js浅拷贝和深拷贝的问题在js中有两种类型1.普通类型:String,Boolean,Number,Undefined,
2020-12-09 02:28:01 564
原创 前后端传参1
1.前端和后端传参问题1.接收Request Payload参数1)方法2前端若传递Request Payload参数,后端只能用实体类接收,并且要加上注解@RequestBody2)方法2 public ResTool account(HttpServletRequest request,String userName, String password) { ServletInputStream is; try { is = reques
2020-12-08 00:18:50 616
原创 es6基本语法
1.es6的常用方法1.合并两个数组的方法例如:let a=[1,2,3];let b=[4,5,6]第一种方法let c = a.concat(b);第二种方法for(let i in b){ a.push(b[i])}第三种办法a.push.apply(a,b);第四种办法var newA = [...a,...b];console.log(newA)2.从JSON里面取值的方法//例子let a=[{name:"li",pws:"p1"},{na
2020-12-08 00:12:49 617
原创 react基本语法
一,组件的使用1.1组件的声明有俩种写法写法一:在components组件中新建Home. js 文件import React,{Component} from "react"; //声明组件的类class Home extends Component{ render(){ return <div>我是Home组件</div> }}export default Home; 写法二:在components组件中新建Cart.
2020-12-08 00:11:43 1506
原创 react脚手架项目创建
1.react脚手架项目创建1.react脚手架的创建方法npm install -g create-react-app // 安装 create-react-appcreate-react-app xxx(文件名)// 通过 create-react-app构建项目2.Antd构建方式npm create umi // 安装 create umi antd是通过umi构建项目这样会出现四个选 Select the boilerplate type (Use arrow keys)❯ a
2020-12-08 00:11:12 647
原创 java继承(简单)
第一章 继承1.1 概述由来多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。定义继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。好处\1. 提高代码的复用性。\2. 类与类之间产生了关系,是多态的前提。1.2 继承的格式通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:class 父类 { ... }
2020-12-08 00:09:56 572
原创 git使用
git init git 初始化git config --global user.name "xxx" 配置用户名git config --global user.email "xxx@xxx.com" 配置邮件git add git add . 把所有变化提到暂存区 git add xxx 把制定文件提到暂存区git status 查看当前文件状态git commit -m "" 提交更新git commit -am 'xxx' 将add和commit合为一步, 但..
2020-12-08 00:09:27 336
原创 ajax提交表单模板
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title>login test</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="pragma" co
2020-12-07 13:08:00 246 1
原创 ssm框架配置说明
ssm框架整合首先明确一点就是,web项目的入库是在web.xml下的,所有的配置文件无论怎么注入都要最终到这个配置文件里面(日志文件除外)首先配置pom.xml(springframework整合spring框架,整合mybatis框架,mysql驱动,druid连接池,整合log4j,ackson Json处理工具包,Servlet/JSP/JSTL,单元测试,Spring对JDBC数据访问进行封装的所有类)<project xmlns="http://maven.apache.org/
2020-12-07 13:06:56 464
原创 servlet四大域对象
servlet四大域对象pageContextpageContext的作用域为page(页面执行期)requestrequest是表示一个请求,只要发出一个请求就会创建一个request,它的作用域仅在当前请求中有效用处:常用于服务器间同一请求不同夜间之间的参数传递,常用于表单的空间值传递方法:request.setAttribute();request.geetAttribute();request.removeAttribute();request.getParameter();sess
2020-12-07 13:06:24 298
原创 jdbc工具类
jdbc工具类package com.stu.util;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;public class DbConfig { /** * 数据库连接类 */ private static Strin
2020-12-07 13:05:52 120
原创 java设计模式总结1
1.工厂设计模式概念工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。按细的分一共有三种,一种是简单工厂,一种是工厂方法还有就是抽象工厂。GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Si
2020-12-07 13:05:04 228 5
原创 java的List操作方法
列表LIst总结1.List和Setlist—其中的值允许重复,适合经常追加数据,插入,删除数据。但随机取数效率比较低。set其中的值不允许重复,无序的数据结构,要求每个元素都必须唯一,适合经常地随机储存,插入,删除。但是在遍历时效率比较低。1.遍历listList<String> list = new ArrayList();for(String s:list){ System.out.println("...")}set// 增强for循环 Set<J
2020-12-07 13:04:06 761
转载 java8新特性
java8新特性一,Lambada表达式理解0.序言:java8中为了支持函数式编程,新增了lambada表达式。函数式编程的三大特性immutable data 不可变数据像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修改。这样一来,可以让你的程序少很多Bug。因为,程序中的状态不好维护,在并发的时候更不好维护。(你可以试想一下如果你的程序有个复杂的状态,当以后别人改你代码的时候,是很容易出bug的,在并行中这样的问题就更多了)first class
2020-12-07 13:02:25 337
原创 1.拆箱和装箱
1.拆箱和装箱1.1常见考点 //自动装箱 Integer total = 99; //自定拆箱 int totalprim = total;简单一点说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。Integer是基本数据类型的int的引用类型,官方语言叫做装箱类型,在对Integer进行==比较的时候如果这个数在-128到127之间,他是在缓存中,但是如果超过了这个范围,那就会new出一个新对象,这时候在比较就是false下面以例子来说明:
2020-12-07 12:58:40 149 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人