项目经验
qq_53294028
这个作者很懒,什么都没留下…
展开
-
springsecurity之跨域
从协议部分开始到端口部分结束,只要与请求URL不同即被认为跨域,域名与域名对应的IP也不能幸免。浏览器解决跨域问题的方法有多种,包括JSONP、Nginx转发和CORS等。其中,JSONP和CORS需要后端参与。CORS(Cross-Origin Resource Sharing)通常情况下,跨域请求即便在不被支持的情况下,服务器也会接收并进行处理,在CORS的规范中则避免了这个问题。浏览器首先会发起一个请求方法为OPTIONS 的预检请求,用于确认服务器是否允许跨域,只有在得到许可后才会发出实际原创 2021-05-31 15:28:32 · 1087 阅读 · 1 评论 -
mybatis面试题
1.mybatis 中 #{}和 ${}的区别是什么?2.mybatis 有几种分页方式?3.RowBounds 是一次性查询全部结果吗?为什么?4.mybatis 逻辑分页和物理分页的区别是什么?5.mybatis 是否支持延迟加载?延迟加载的原理是什么?6.说一下 mybatis 的一级缓存和二级缓存?7.mybatis 和 hibernate 的区别有哪些?8.mybatis 有哪些执行器(Executor)?9.mybatis 分页插件的实现原理是什么?10.mybatis 如何编原创 2021-04-17 22:09:29 · 109 阅读 · 0 评论 -
mybatis嵌套查询
public List<MyOrdersVO> queryMyOrders(@Param("paramsMap") Map<String, Object> map);<resultMap id="myOrdersVO" type="com.imooc.pojo.vo.MyOrdersVO"> <id column="orderId" property="orderId"/> <result column="createdTime" p原创 2021-04-17 20:26:49 · 93 阅读 · 0 评论 -
项目中常用的几个组件和工具类
package com.imooc.aspect;import org.aopalliance.intercept.Joinpoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.slf4j.Logger;import org.slf4j.LoggerFactor原创 2021-04-15 22:57:23 · 284 阅读 · 0 评论 -
@Valid的用法
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>@ApiOperation(value = "修改用户信息", notes = "修改用户信息", httpMethod = "POS原创 2021-04-15 22:50:47 · 174 阅读 · 0 评论 -
1.多线程_蚂蚁
1.获取线程对象以及名称*常用线程********api方法*start()启动线程currentThread()获取当前线程对象getID()获取当前线程ID Thread-编号 该编号从0开始getName()获取当前线程名称sleep(long mill)休眠线程Stop()停止线程*常用线程构造********函数*Thread()分配一个新的 Thread 对象Thread(String name)分配一个原创 2020-09-07 13:17:35 · 117 阅读 · 0 评论 -
maven中央仓库等配置
下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gzmaven repository 与镜像地址http://mvnrepository.com maven 仓库用于查找所需要pom项目http://repo1.maven.org/maven2/ 全球总仓库1http://repo2.maven.org/maven2/ 全球总仓库2htt原创 2020-09-05 17:26:18 · 472 阅读 · 0 评论 -
Centos7安装后,初始化配置
1.非必须1.1操作系统安装:为了统一环境,保证实验的通用性,将网卡名称设置为 eth*,不使用 CentOS 7 默认的网卡命名规则。所以需要在安装的时候,增加内核参数。1) 选择“Install CentOS 7”2) 点击 Tab,打开 kernel 启动选项后,增加 net.ifnames=0 biosdevname=0,如下图所示。2.必须2.1安装完毕后设置1. 设置网络。如果你的默认 NAT 地址段不是 192.168.56.0/24 可以修改 VMware Workst原创 2020-08-16 09:05:10 · 1426 阅读 · 0 评论 -
日志模板(logback.xml)
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <property name="PROJECT" value="mysb1" /> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="ROOT" value="d:/logs/${PROJECT}/" /> <原创 2020-08-16 08:53:17 · 190 阅读 · 0 评论 -
自定义异常
自定义异常类一般卸载common模块里。一般继承RuntimeException,因为RuntimeException在代码中不需要手动catch,而Exception需要手动catch。public class AuthFailException extends RuntimeException {}示例:自定义异常类import com.xuecheng.framework.model.response.ResultCode;public class CustomException ex原创 2020-08-13 12:36:20 · 916 阅读 · 0 评论 -
安装docker
2 Docker安装与启动2.1 安装Docker Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本的CentOS中是不支持更新最新的一些补丁包的。 由于我们学习的环境都使用的是CentOS,因此这里我们将Docker安装到CentOS上。注意:这里建议安装在CentOS7.x以上的版本,在CentOS6.x的版本中,安装前需要安装其他很多的环境而且Docker很多补丁不支持更新。原创 2020-08-09 21:43:53 · 135 阅读 · 0 评论 -
application.yml配置文件各种语法
#普通数据的配置name: zhangsan#对象的配置person:name: zhangsanage: 18addr: beijing#或者#行内对象配置#person: {name: zhangsan,age: 18,addr: beijing}#配置数据、集合(普通字符串)#配置数组(List、Set)数据city:beijingtianjinchongqingshanghai#或者#city: [beijing,tianjin,chongqing,shangh原创 2020-08-09 18:24:55 · 825 阅读 · 0 评论 -
maven仓库安装自定义jar依赖
mvn install:install-file -Dfile=D:\java\lib\Spire.Xls.jar -DgroupId=e-iceblue -DartifactId=spire.custom -Dversion=1.0 -Dpackaging=jar原创 2020-07-17 09:22:21 · 873 阅读 · 0 评论 -
mybatis使用注意点
1.当传递多个参数时,在mapper接口中,一定要注明:@Param(“email”)注解,否则报错。例:List selectByEmailAndSex2(@Param(“email”)String email,@Param(“sex”)Byte sex);原创 2020-06-18 22:22:47 · 355 阅读 · 0 评论 -
mybatis-config-all.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- 参数设置 --> <settings> <!-- 这个配置使全局的映射器启用或禁用缓原创 2020-06-18 22:03:09 · 157 阅读 · 0 评论 -
mybatis保存数据后,得到自增长的id值
新增用户 id 的返回值新增用户后,同时还要返回当前新增用户的 id 值,因为 id 是由数据库的自动增长来实现的,所以就相当于我们要在新增后将自动增长 auto_increment 的值返回。<insert id="saveUser" parameterType="USER"><!-- 配置保存时获取插入的 id --><selectKey keyColumn="id" keyProperty="id" resultType="int">select la原创 2020-06-16 22:47:33 · 965 阅读 · 0 评论 -
一键生成数据字典
USE information_schema;–切记这里不能忘掉SELECTT.TABLE_SCHEMA AS ‘数据库名称’,T.TABLE_NAME AS ‘表名’,T.TABLE_TYPE AS ‘表类型’,T. ENGINE AS ‘数据库引擎’,C.ORDINAL_POSITION AS ‘字段编号’,C.COLUMN_NAME AS ‘字段名’,C.COLUMN_TYPE AS ‘数据类型’,C.IS_NULLABLE AS ‘允许为空’,C.COLUMN_KEY AS ‘键原创 2020-06-16 15:52:20 · 384 阅读 · 0 评论 -
使用docker部署Nexus
docker pull sonatype/nexus3version: '3.1'services: nexus: restart: always image: sonatype/nexus3 container_name: nexus ports: - 8081:8081 volumes: - /usr/local/docker/nexus/data:/nexus-data启动时如果出现权限问题可以使用:chmod 777原创 2020-05-26 23:21:20 · 130 阅读 · 0 评论 -
安装Ubuntu Server 16.04 X64
1.虚拟机Ubuntu Server 16.04 X64主机名:选错重装:只选择一种SSH原创 2020-05-26 12:21:49 · 183 阅读 · 0 评论 -
配置root登录与编辑linux数据源
当安装好linux后,第一步就是先修改数据源。vi /etc/apt/sources.list删除所有的配置,替换为以下配置:deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb http://mirror原创 2020-05-26 12:11:07 · 165 阅读 · 0 评论 -
linux修改root密码
sudo passwd rootsu rootvi /etc/ssh/sshd_config# Authentication:LoginGraceTime 120#PermitRootLogin without-password //注释此行PermitRootLogin yes //加入此行StrictModes yes#重启服务service ssh restart此时可以使用root用户连接...原创 2020-05-26 12:04:13 · 243 阅读 · 0 评论 -
Swagger基本使用
Swagger常用注解在Java类中添加Swagger的注解即可生成Swagger接口,常用Swagger注解如下:@Api:修饰整个类,描述Controller的作用@ApiOperation:描述一个类的一个方法,或者说一个接口@ApiParam:单个参数描述@ApiModel:用对象来接收参数@ApiModelProperty:用对象接收参数时,描述对象的一个字段@ApiResponse:HTTP响应其中1个描述@ApiResponses:HTTP响应整体描述@ApiIgnore:使原创 2020-05-24 22:57:27 · 164 阅读 · 0 评论 -
mapper.xml中sql语句比较符号的转义写法
错误写法<select id="select" parameterType="xxx" resultMap="xxx"> select distinct <include refid="Base_Column_List" /> from xxx <where> <if test="createDate != null"> create_date <= #{.原创 2020-05-19 08:54:24 · 468 阅读 · 0 评论 -
在实体中注明联合主键
import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.IdClass;import javax.persistence.Table;import java.io.Serializable;@Entity@Table(name = "tb_friend")@IdClass(Friend.class)public class Friend implements Serializ.原创 2020-05-18 23:00:17 · 389 阅读 · 0 评论 -
在web.xml中,路径配置/与/*的区别
<!-- spring mvc 配置 --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> &l...原创 2020-04-27 22:14:20 · 275 阅读 · 0 评论 -
java通过PDF模板生成PDF文件(带图片)
<?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://ma...原创 2020-04-26 10:25:27 · 3134 阅读 · 5 评论 -
java发送邮件(带PDF附件)代码
pom<?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:...原创 2020-04-26 10:23:30 · 1951 阅读 · 0 评论 -
MySQL双主模式
2台服务器之间,没有明显的地位差距, 两者可以同步对方的内容.两台服务器相互复制大致思路:1: 2台服务器都设置上2进制日志和relay日志2: 都设置上replcation账号3: 都设置对方为自己的master主主复制下一定要注意避免的问题---------同步冲突例:create table stu (id int primary key auto_increment.)...原创 2020-04-19 16:22:47 · 427 阅读 · 0 评论 -
分库分表
1.为什么要分库分表超大容量问题性能问题2.如何去做垂直切分、 水平切分垂直分库; 解决的是表过多的问题垂直分表; 解决单表列过多的问题水平切分; 大数据表拆成小表3.常见的拆分策略垂直拆分(er分片)水平拆分:一致性hash(取模)范围切分 可以按照ID(落到哪个范围,插入到哪个库,哪张表)日期拆分(时间)4.拆分以后带来的问题1.跨库join的问题设计的时...原创 2020-04-19 16:22:08 · 104 阅读 · 0 评论 -
MySQL主从同步时,主服务器的binlog格式用哪种好?
有 statement,row, mixed3种,其中mixed是指前2种的混合以insert into xxtable values (x,y,z)为例,影响: 1行,且为新增1行, 对于其他行没有影响.这个情况,用row格式,直接复制磁盘上1行的新增变化.以update xxtable set age=21 where name=’sss’;这个情况,一般也只是影响1行. 用row也...原创 2020-04-17 21:48:07 · 449 阅读 · 0 评论 -
设计模式
设计模式的六大原则开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。接口隔离原则(Interface Segregation Principle)...原创 2020-04-09 13:34:09 · 86 阅读 · 0 评论 -
手动下载maven依赖的jar包
手工下载依赖,并安装到本地maven仓库(1)在maven中央仓库搜索jar包,如果没有找到,就得手动在百度里面找,下载jar下来(2)根据jar对应的group id,artifact id,找到自己本地的maven仓库,对应的目录,将jar包拷贝到那个目录里面去jmxtool,groupId=com.sun.jdmk,artifactId=jmxtools,version=1.2.1c...原创 2020-04-09 08:45:20 · 2387 阅读 · 1 评论 -
Tomcat与jetty
操作系统基础Java 语言其实是对操作系统 API 的封装,上层应用包括 Web 容器都是通过操作系统来工作的,因此掌握相关的操作系统原理是我们深刻理解 Web 容器的基础。对于 Web 容器来说,操作系统方面你应该掌握它的工作原理,比如什么是进程、什么是内核、什么是内核空间和用户空间、进程间通信的方式、进程和线程的区别、线程同步的方式、什么是虚拟内存、内存分配的过程、什么是 I/O、什么是...原创 2020-04-08 16:26:18 · 158 阅读 · 0 评论 -
github搜索开源项目技巧
awesome 关键字搜你想学的内容点击英文字母 t原创 2020-04-03 13:57:34 · 96 阅读 · 0 评论 -
java数据通过POI导入导出Excel文件
一、Excel导入导出的应用场景1、数据导入:减轻录入工作量2、数据导出:统计信息归档3、数据传输:异构系统之间数据传输二、POI简介(Apache POI)1、什么是POIApache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。HSSF - 提供读写Microsoft Excel格式档案的功...原创 2020-04-02 13:58:30 · 264 阅读 · 0 评论 -
如何设计一个高并发系统?简要思路
(1)当公司系统并发开始增加时,做系统拆分,将一个系统拆分为多个子系统,用dubbo来搞。然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,不也可以抗高并发么。(2)缓存,必须得用缓存。大部分的高并发场景,都是读多写少,那你完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存不就得了。毕竟人家redis轻轻松松单机几万的并发啊。没问题的。所以你可以考虑考虑你的项目里,那些承载主要请...原创 2020-03-28 20:47:43 · 317 阅读 · 0 评论 -
redis分布式锁问题
建立redis集群,作为分布式锁。1.如果客户端1挂掉怎么办?给锁加一个过期时间原创 2020-03-24 12:31:26 · 1106 阅读 · 0 评论 -
什么时候数据库行锁会升级为表锁?
事务的隔离级别为:可重复读时,如果有索引(包括主键索引),以索引列为条件更新数据,会存在间隙锁,行锁,页锁,而锁住一些行。如果没有索引,更新数据时会锁住整张表。...原创 2020-03-05 23:55:09 · 3463 阅读 · 0 评论 -
方法拦截器链为什么是倒序的?
在使用AOP代理时,调用被代理类的切点方法时,前置处理器,后置处理器等,是倒序排列的,为什么?最后执行:每个方法拦截器都是一个对象,通过反射调用...原创 2020-03-03 23:17:59 · 245 阅读 · 0 评论 -
活锁
public class SafeOperateToo implements ITransfer { @Override public void transfer(UserAccount from, UserAccount to, int amount) throws InterruptedException { Random r = new R...原创 2020-03-01 23:09:32 · 90 阅读 · 0 评论