- 博客(50)
- 收藏
- 关注
原创 使用maven-shade-plugin relocation解决包冲突
项目中使用了org.springframework.cglib.beans.BeanCopier进行JavaBean的复制操作,此操作不会进行类型转换操作,及类型不一致时,属性无法赋值,包括基本类型和包装类型,需要使用Converter进行类型转换。查看Converter时发现没有参数名的描述,于是在github上查询Spring-core的源码,发现源码与Jar中文件差异很大spring-core.jarspring-core源码许多jar中的class文件在源码中不存在,怀疑为打包时进行了某
2021-11-24 15:13:59
2736
1
原创 AbstractRoutingDataSource实现动态数据源切换
AbstractRoutingDataSourcespring-jdbc的包中,提供了AbstractRoutingDataSource用于数据源路由操作public abstract class AbstractRoutingDataSource extends AbstractDataSource implements InitializingBean {该类实现了InitializingBean接口,说明初始化时会调用afterPropertiesSet方法@Overridepublic
2021-11-24 13:39:57
1450
1
原创 RedisTemplate使用Jackson序列化及反序列化
@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate(); this.initDomainRedisTemplate(redisTemplate, redisConnectionFact
2021-11-22 23:52:24
2105
原创 Redis数据类型及使用场景
一共有8中数据类型,常用的是5种StringString字符串Int整数Float字符串常用操作命令set young 2673 [EX 过期时间(秒)| PX 过期时间 毫秒] [NX key 不存在操作才能成功| XX 只有Key存在的时候才能成功]mset young 2673 hui 666 批量setmget young hui 批量getstrlen young value长度append young good 给value后面追加getrange young 0 8 返回
2021-11-22 23:45:56
587
原创 redis java客户端
https://redis.io/clients#java星标为推荐客户端Jedishttps://github.com/xetorthio/jedis<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version></dependency>
2021-11-22 23:40:12
683
原创 CentOS 7 安装redis 6
安装1、下载redishttp://download.redis.io/releases比如把Redis安装到/usr/local/soft/cd /app/toolswget http://download.redis.io/releases/redis-6.2.6.tar.gz2、解压压缩包tar -zxvf redis-6.2.6.tar.gz3、安装gcc依赖Redis是C语言编写的,编译需要yum install gcc4、编译安装cd /app/tools/redi
2021-11-22 23:36:21
419
原创 SpEL表达式的使用
Spring Expression LanguageSpEL是Spring提供的一种的表达式语言,支持在运行时查询和操作对象。SpEL并不直接与Spring相关联,可以独立使用。SpEL解析器SpEL提供了对应的解析器SpelExpressionParser用于解析SpEL表达式EvaluationContextEvaluationContext用于计算表达式以解析属性、方法、字段,并帮助执行类型转换。Spring提供了两个实现SimpleEvaluationContext和StandardE
2021-11-21 18:16:07
8291
2
原创 Nginx防盗链配置
作用放置其他人盗用系统静态资源正常访问location ~* .\(png|gif|png)${ root /usr/static;}此时可以通过浏览器可以正常访问到静态资源也可以通过命令行访问curl --referer http://baidu.com -| http://192.168.12.120/logo.png在curl通过–referer选项来指定我们是从哪里跳转的 -|参数则只显示 http response的头信息表示是通过baidu.com来访问这个地址的加防
2021-11-20 14:43:39
789
原创 nginx跨域配置
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域当前页面url被请求页面url是否跨域原因http://www.test.com/http://www.test.com/index.html否同源(协议、域名、端口号相同)http://www.test.com/https://www.test.com/index.html跨域协议不同(http/https)http://www.test.com/http://www.baid
2021-11-20 14:31:11
1078
原创 Nginx动静分离
server{ listen 80; server_name local_host; location /{ proxy_pass http://127.0.0.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_fo
2021-11-20 14:28:54
942
原创 Nginx负载均衡配置
网络负载均衡的大致原理是利用一定的分配策略将网络负载平衡地分摊到网络集群的各个操作单元上,使得单个负载任务能够分担到多个单元上并行处理,使得大量并发访问或者数据流量分担到多个单元上分别处理,从而减少用户的等待响应时间upstream是nginx的http Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡upstream与server同级# 负载均衡配置upstream yhsblog { # 列举负载均衡的服务器列表 server 127.0
2021-11-20 14:27:41
642
原创 Nginx反向代理
概念正向代理:是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。(类似于访问谷歌,请求代理服务器,代理服务器请求谷歌,谷歌响应到代理服务器,代理服务器返回给浏览器)。客户是知道代理服务器和原始服务器的存在的反向代理:位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获取目标服务器的资源。同时,客户不需要知道目标服务器的地
2021-11-20 14:24:59
910
原创 Nginx location匹配规则
location会尝试根据用户请求中的URI来匹配上面的uri表达式,如果可以匹配,就会选择location{}块中的配置来处理用户请求。匹配方式是多样的。location[=||*] /uri/ { …}~ 波浪写表示执行一个正则匹配,区分大小写~* 表示执行一个正则匹配,不区分大小写= 进行普通字符精确匹配URI匹配模式location的指令分为两种匹配模式普通字符串匹配:以=开头或者没有带正则引导符号(~)规则location /uri 普通匹配前缀匹配匹配采用最长匹
2021-11-20 14:22:38
1119
原创 SpringBoot基于Redis使用SpringCahe
Spring Cache 官方文档注解@Cacheable作用于方法或者类上。作用于类上表示该类中所有方法都会走缓存操作cacheNames/value缓存名称,可配置多个,调用方法前,会检查是否有命中的缓存,如果有命中至少一个缓存,则返回缓存值,不执行方法操作。更新缓存时,value中所有的缓存名称对应的缓存都会更新。@Cacheable(value={"a","b"})public String a(){.....}@Cacheable(value="b")public Stri
2021-11-18 13:16:21
934
原创 CentOS 7 搭建mysql 5.7
下载mysql源安装包wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm安装mysql源yum localinstall mysql57-community-release-el7-8.noarch.rpm安装mysqlyum -y install mysql-community-server启动mysql服务systemctl start mysqld查看mysql状态..
2021-11-18 13:12:53
576
原创 Nginx配置文件说明
nginx.conf组成main块 配置错误日志、进程及权限等信息设置worker进程的归属 用户 用户组#user nobody;指定worker进程的数量worker_processes 1;错误日志路径 后面是日志级别 debug info notice warn error crit#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info
2021-11-18 13:08:34
523
原创 CentOS 7 安装Nginx
安装gccyum install gcc-c++安装 PCRE pcre-develyum install -y pcre pcre-devel安装zlibyum install -y zlib zlib-devel安装OpenSSLyum install -y openssl openssl-devel下载nginx安装包,地址: https://nginx.org/en/download.htmlwget https://nginx.org/downlo..
2021-11-18 12:15:52
224
原创 SpringBoot上传文件限制
项目中需要控制上传文件的大小,采用了SpringBoot中的配置进行配置,并添加了相关的异常拦截处理。application.yamlspring: servlet: multipart: max-file-size: 5MB # 文件上传大小限制为5MB max-request-size: 5MB # 请求大小限制为5MB全局异常配置@RestControllerAdvicepublic class CustomExceptionHand
2021-11-17 20:38:17
2258
原创 Spring AOP
注解开启AOP@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)proxyTargetClass默认值为false,表示默认使用JDK动态代理,未实现接口的类使用CGLIB,为true表示默认使用CGLIB代理exposeProxy默认值为false,为true表示通过aop框架暴露该代理对象,aopContext能够访问相关注解@Aspect声明切面bean,加在类上,配合@Component使用,否则Sp
2021-11-17 20:33:09
863
1
原创 SpringBoot Mybatis多数据源配置
生产环境数据源配置为jndi,故代码中的多数据源配置基于jndiJndi数据源配置类public class JndiDataSourceConfig { /** * 自定义全局mybatis配置 */ @Autowired private MybatisConfig mybatisConfig; /** * 创建数据源 * @param jndiDataSouceProperties 数据源配置配 * @return *
2021-11-17 00:29:54
297
原创 CentOS 7安装NodeJs
安装nodejs通过国内镜像地址下载NodeJscd /app/toolswget https://npm.taobao.org/mirrors/node/v16.13.0/node-v16.13.0-linux-x64.tar.xz解压压缩包xz -d node-v16.13.0-linux-x64.tar.xztar -xvf node-v16.13.0-linux-x64.tar进入bin目录cd /app/tools/node-v16.13.0-linux-x64/bin此时
2021-11-17 00:27:09
1063
原创 自定义注解的基本操作
编写自定义注解需要一定的反射相关知识元注解作用在其他注解上的注解@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。@Documented - 标记这些注解是否包含在用户文档中。@Target - 标记这个注解应该是哪种 Java 成员。@Inherited - 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)@Repeatable - Java 8 开始支持,标识某注解可以在同一个声明上使用多次。其中@
2021-11-17 00:08:59
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人