- 博客(23)
- 收藏
- 关注
原创 Cache源码解析(RedisCache配置过程)
①cache配置过程 1、找到CacheAutoConfiguration类 内部有个配置类加载选择器,决定了哪个配置类会被加载! 2、找到CacheConfigurations类 RedisCacheConfiguration为redis的缓存配置类。 3、找到RedisCacheConfiguration类 RedisCacheConfiguration向spring中放入了RedisCacheManager的bean,用于管理Re...
2021-12-21 21:56:57
4286
原创 @ComponentScan的坑
使用了@ComponentScan后,spring默认的包扫描器将失效,spring只扫描@ComponentScan中指定的包! 所以,需要将要扫描的包都指定!
2021-12-15 20:55:31
1652
原创 rabbitMQ处理异步发送确认模式下未确认消息
package com.wang; import com.rabbitmq.client.Channel; import com.rabbitmq.client.ConfirmCallback; import com.wang.conf.Config; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.concurrent.ConcurrentNavigableMap.
2021-11-08 22:32:07
2514
1
原创 linux下各种软件的启动与关闭
一、zookeeper 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务:sh bin/zkServer.sh start 2. 查看ZK服务状态: sh bin/zkServer.sh status 3. 停止ZK服务: sh bin/zkServer.sh stop 4. 重启ZK服务: sh bin/zkServer.sh restart 二、mysql 启动M...
2021-11-01 15:11:10
3290
原创 使用shell脚本及docker创建redis集群
#!/bin/bash for port in 6379 6380 6381 6389 6390 6391 do mkdir -p /data-redis/node-$port/conf cat << EOF >> /data-redis/node-$port/conf/redis.conf pidfile "/var/run/redis_$port.pid" port $port dbfilename "dump_$port.rdb" logfile "$port.log" ##.
2021-11-01 10:33:20
919
1
原创 docker制作tomcat镜像、redis镜像
一:使用dockfile制作tomcat镜像 FROM centos COPY readme.txt /usr/local ADD tar/jdk-8u301-linux-x64.tar.gz /usr/local ADD tar/apache-tomcat-9.0.52.tar.gz /usr/local ENV MYPATH /usr/local WORKDIR $MYPATH ENV JAVA_HOME /usr/local/jdk1.8.0_301 ENV JRE_HOME $J...
2021-10-30 20:54:01
297
原创 springboot整合redis
1.properties文件 #主机名 spring.redis.host=192.168.249.131 #端口号 spring.redis.port=6379 #节点群 spring.redis.cluster.nodes=192.168.249.131:6379,192.168.249.131:6380,192.168.249.131:6381,192.168.249.131:6389,192.168.249.131:6390,192.168.249.131:6391 #Redis...
2021-10-22 19:39:14
174
原创 Mybatis逆向工程配置
1.拷贝 Mybatis逆向工程配置文件到项目的根录下(GeneratorMapper.xml) 2.修改 GeneratorMapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" ...
2021-10-22 10:09:06
139
原创 IDEA报错Cannot download sources解决方法
在Terminal,进入到项目根路径后,输入“mvn dependency:resolve -Dclassifier=sources”,然后再下载源码就可以了。
2021-10-21 17:38:29
542
原创 spring整合redis,并使用redisTemplate
注意:一定要保持版本一致! 1、redis.properties文件: redis.maxTotal=1000 redis.maxIdle=5 redis.maxWaitMillis=2000 redis.testOnBorrow=true redis.host=192.168.249.131 redis.port=6379 redis.timeout=2000 redis.password= redis.timeBetweenEvictionRunsMillis=30...
2021-10-15 22:06:16
649
原创 java二维数组
java中的int[][]表示一个二维数组,第一个方括号表示二维数组的行数,第二个位列数。因此,一个int[2][3]表示为: 但是数组的编号是从0开始,因此最大的2行3列的数据赋值2可表示为: t[1][2] = 2; //或者,外层括号表示行,内层括号表示一列一列的数据,第一行为{1,1,1}。第二行为{1,1,2} int[][] t = {{1,1,1},{1,1,2}}; ...
2021-10-05 16:27:46
814
原创 数据库使用函数和存储批量添加数据
#sql 生成n位数的随机字符串函数 delimiter $$ create function randString( n int) returns varchar(255) begin declare stringArray varchar(60) default 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; declare resString varchar(255) default ''; declare i int default .
2021-10-01 21:50:13
207
原创 通过nio内存映射文件方式进行读/写操作
FileChannel的map()方法可以将磁盘上的文件映射到计算机的虚拟内存中,并将虚拟内存包装成一个MappedByteBuffer对象。输出流的FileChannel通过write(MappedByteBuffer对象)方法可以将文件写入到指定位置。该方法不需要频繁的磁盘输入输出,提高I/O流的读写效率。但计算机的虚拟内存会严重影响该种方式。 package com.wang.TestBuffer; import java.io.*; import java....
2021-09-22 17:28:09
297
原创 mvc图片验证码的实现
1.在pom文件中加载验证码依赖 <!--验证码依赖--> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependency> 2.在a...
2021-09-11 20:38:25
357
原创 spring单例模式
spring中的bean都是单例模式创建的,始终都是处理一个bean对象,在多用户操作情况下单例模式只跟用户提交操作时间顺序,准确是处理器执行代码的先后顺序有关。 例如: 1.创建饿汉式单例Student: package org.example; public class Student { private static Student student = new Student(); private Student() { } ...
2021-09-10 22:30:32
1254
原创 使用Jackson将json转为map
第一种方法:使用遍历,并将其放入map内 第二种方法: String possibility = (String) application.getAttribute("possibility"); ObjectMapper om = new ObjectMapper(); Map<String,Object> map = om.readValue(possibility,Map.class);
2021-09-07 10:53:56
3004
原创 spring框架监听ServletContext启动,并加入一些属性到ServletContext
第一步: 在web.xml文件中配置spring的servletcontext监听文件以及自己写的servletcontext监听文件,自己写的servletcontext监听文件应放在spring文件之后,需要从spring容器内取对象。 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpat...
2021-08-30 15:53:53
540
2
原创 ServletContext全局作用域对象如何在启动时加载类并执行其方法
第一种方式: 第一步:创建监听器类,该类实现了ServletContextListener接口,重写 contextInitialized(ServletContextEvent servletContextEvent)与contextDestroyed(ServletContextEvent servletContextEvent)方法; public class A implements ServletContextListener{ @Override pu...
2021-08-29 22:49:34
477
1
原创 controller不能自动注入service
主要的问题之一为: 在web.xml配置文件中: (1)ContextLoaderListener监听的是applicationContext全局作用域的创建,而全局作用域启动时,spring容器也应在此时创建。因此全局作用域放的是spring的配置文件,主要控制dao以及service的对象。 (2)中央调度器是springMVC的核心组件,通过处理器映射器、处理器适配器、视图解析器等处理请求并响应。其中适配器是控制controller层...
2021-08-27 21:17:43
1173
原创 spring在别的service中调用方法开启事务
注:本文仅讨论AOP采用的是jdk默认(接口)动态代理方式。 spring中AOP都是采用的动态代理方式实现的,jdk默认的动态代理方式是通过创建接口的代理对象实现的,因此目标类必须要有接口才能实现AOP。 事务采用的是aop中的@Around方式实现的,当外部方法通过IOC调用对象的方法时,调用的是spring容器中对象的方法,而不是事务接口的动态代理对象,因此事务失效,并不会产生回滚。 例如: @Service public class Remo...
2021-08-27 17:12:54
1416
原创 反射获取Field
第一步:定义一个需要获取Field的类: public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 第二步:采用反射机制获取类的Field属性值: public void AddTest01(){
2021-08-20 23:23:51
930
原创 mybatis主配置文件
设置mybatis日志: <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> 设置别名: <typeAliases> <package name="实体类所在的包名"/> </typeAliases> ...
2021-08-07 15:51:23
86
原创 IntelliJ IDEA快捷键-持续补充
选择可重写的方法: Ctrl + O 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等: Alt + Insert 快速自动生成Junit测试类: ctrl+shift+t–>create new test 显示当前类的层次结构 Ctrl + H 在当前文件进行文本替换 Ctrl + R 删除光标所在行 或 删除选中的行 Ctrl + Y ......
2021-08-02 10:29:17
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅