• 正则表达式

    基础语法:1.匹配一些简写的字符.除换行符外的所有字符\w匹配所有字母数字,等同于 [a-zA-Z0-9_]\W匹配所有非字母数字,即符号,等同于: [^\w]\d匹配数字: [0-9]\D匹配非数字: [^\d]\s匹配所有空格字符,等同于: [\t\n\f\r\p{Z}]\S匹配所有非空格字符:...

    java执行sh脚本

    int exitCode;StringBuilder result = new StringBuilder();try {// 创建一个ProcessBuilder对象ProcessBuilder processBuilder = new ProcessBuilder("/usr/xxx/...

    java执行sql脚本

    import javax.sql.DataSource;@Autowiredprivate DataSource dataSource;ClassPathResource classPathResource = new ClassPathResource("xxx.sql");t...

    升级spring依赖、更换tomcat版本

    spring、springboot、springcloud有对应的版本,查询链接:maven 仓库网址https://mvnrepository.comspringcloud和springboot对应的版本https://spring.io/projects/spring-cloudspringbo...

    java作为服务,开机自启动

    #!/bin/sh# chkconfig: 2345 10 90# description: inmsAPP_ID=inms-cloud-pmpLOG_NAME=inms.logINMS_HOME=/dav3/javado_start() {cd $INMS_HOMEnohup /usr/loca...

    linux安装JDK

    复制JDK文件(jdk-8u341-linux-x64.tar.gz)到/usr/local目录下,解压改名为java编辑/etc/profile,在末尾添加export JAVA_HOME=/usr/local/javaexport CLASSPATH=.:JAVAHOME/jre/lib/rt....

    springboot配置全局跨域

    @Configurationpublic class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { regist...

    Java多线程和线程池

    一、为什么需要多线程cpu、内存、io设备的速度有差异,多线程是为了合理利用cpu的高性能,平衡三者的速度差异但是多线程会产生可见性、原子性和有序性问题,导致线程不安全。可见性由cpu缓存引起,原子性由分时复用引起,有序性由重排序引起二、Java多线程实现方法1.实现runnable接口2.实现ca...

    理解String类

    String是一个final类,不允许继承,实现了Serializable、Comparable和CharSequence接口内部维护一个final的char类型的数组value[],对String参数的操作本质上是在操作这个数组String的不可变String类用final修饰,不可以被继承,所以...

    包装类

    包装类Java有基本类型,它们不是对象,为了让基本类型有对象的特征(使其拥有属性和方法,丰富其操作),需要将其包装为对象1.装箱和拆箱的实现Integer类举例,Integer是int的包装类,它维护一个final int类型的value,所有操作都是对这个value的操作装箱:valueOf方法传...

    Java集合体系梳理

    Java集合的根接口为Collection和Map,前者是单列集合,后者是双列集合一、CollectionCollectin有三个主要实现,分别是抽象类AbstractCollection和接口List、Set。List、Set只是定义了集合的一些操作AbstractCollection定义了一些通...

    理解assert关键字

    断言,是为了方便调试程序,JVM默认关闭断言,所以一般在代码里写assert是不起作用的有两种写法:1.assert condition;condition是Boolean类型的值,如果是true,断言为真,如果是false,断言失败,抛出异常2.assert condition:expr;expr...

    理解instanceof关键字

    表示左边对象是否是右边类的实例深入的说:左边和右边是否有继承或者实现关系1.A是A本身的实例2.A是A的父类(父类的父类)的实例3.A是A实现的接口(父类的接口)的实例...

    理解synchronized关键字

    同步,加锁保证线程安全,可以分为对象锁和类锁对象锁synchronized写在非静态方法上锁的只是单个对象,如果有两个对象同时操作,那还是线程不安全的比如下面代码,结果都小于2000000public class Sync { private static int in = 0; pub...

    理解static关键字

    修饰变量类加载后就会为静态变量在内存中分配唯一的一块存储空间,程序跑起来变量已经可以直接被用了,而普通变量依赖对象,有了对象才可以访问类比为澡堂子和肥皂,静态变量属于澡堂子,普通变量属于每个人。静态的肥皂有澡堂子就可以用了,而要用普通肥皂需要先创造一个人静态变量在内存中唯一,所以需要注意修改它的时候...

    后端接收文件,上传到oss

    1.使用MultipartFile file接收,不能加requestBody注解2.file.getOriginalFilename()获取文件名称,file.getInputStream()获取文件流3.上传osspublic static String putObject(String fil...

    前端从后端获取文件

    1.后端在Controller中获取到HttpServletResponse response2.获取到文件inputStream,比如从oss下载到3.流写入response// 设置响应格式response.reset();response.setContentType("applic...

    Java中通过url下载文件

    获取到inputStream// 根据url获取文件URL url = new URL(URLDecoder.decode(ossUrl, "UTF-8"));HttpURLConnection conn = (HttpURLConnection) url.openConnect...

    解决request的inputStream只能获取一次的问题

    ContentCachingRequestWrapper类就是为了解决该问题,它将内容放置于缓存中,以供后续获取@Componentpublic class RequestCachingFilter extends OncePerRequestFilter { @Override pro...

    个人netty深入理解

    一.netty服务端的启动1.启动服务端Bootstrap,绑定group事件循环组,绑定channel为NioServerSocketChannel,绑定服务端handler,绑定客户端childHandler(1.1),绑定tcp的Option参数,还有attrs一般不会用2.init和regi...

    jackson linkedHashMap问题

    jackson会将json串中的子json转为linkedHashMap,需要转为实体类jsonToBean转Object的时候也会默认转为linkedHashMap。。。 public static <T> T linkedHashMapToBean(Object linkedH...

    spring使用ApplicationContextAware获取bean

    有的时候注入不了,使用手动获取的方式@Componentpublic class ApplicationContextProvider implements ApplicationContextAware { private static ApplicationContext context;...

    springboot 异步执行方法

    方式 一、@Async注解1.启动类需要添加@EnableAsync注解2.需要修改为异步的方法上添加注解@Async其中,@Async默认使用线程池,一般项目中要指定自定义线程池 @Async(“commonExecutor”)非常重要:如果在同一个类中调用了注解为@Async的方法,不会有异步的...

    本机调用不到k8s中的服务

    本地电脑开发,feign调用k8s中的服务会调用不到,查看注册中心nacos上服务的注册地址,本机的服务和k8s的服务不在一个网段。要想调用到,有两种方法:1.本机把另外的服务也启动起来,其中包含了rpc调用链路上的所有服务,不推荐2.在@FeignClient注解中进行配置,url填写为k8s的地...

    类加载流程和双亲委派

    类加载器...

    注解实现bean的选择性引入

    往spring容器中放入一个bean,可以使用@Configuration和@Bean。spring会扫描标记了@Component、@Controller、@Service、@Repository的类,@Configuration注解本身也用@Component标注了,Spring将能够识别出 @...

    RequestBody和RequestParam

    @RequestBody和@RequestParam1.@RequestParam用于获取请求头中的信息required 表示是否必须,默认为 true,必须。defaultValue 可设置请求参数的默认值。value 为接收url的参数名(相当于url中的key)application/json...

    tomcat接收文件最大值默认为10M,需要扩大

    org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededExcepspring: servlet: multipart: max-file-size: 1GB max-request-s...

    调用三放sdk时报错NoClassDefFoundError: org/apache/http/ssl/SSLContextBuilder

    NoClassDefFoundError: org/apache/http/ssl/SSLContextBuilder at com.aliyun.oss.common.comm.DefaultServiceClient.createHttpClientConnectionManager添加依赖 ...

    arthas使用

    认识Arthas是阿里巴巴开源的Java诊断工具,基本使用场景是定位复现一些测试环境和生产环境比较难以定位问题。可以在线排查问题,以及动态追踪Java代码,实时监控JVM状态等等。过去定位问题的手段开发阶段:没有太多限制,直接使用IDE调试,debug,随意重启测试和生产阶段:一般不允许重启抓包,项...

    springboot在Controller的实体类中参数校验

    使用的是javax.validation.constraints类1.controller方法的请求实体类前添加@Valid注解2.请求实体类中添加需要的注解,如@NotBlank、@NotEmpty。常用注解参考https://blog.csdn.net/qq1929892209/article/...

    实现springboot对用户token的拦截和存放(ThreadLocal+spring拦截器)

    1.编写一个ThreadLocal类,用于存放token private static final ThreadLocal<String> TOKEN = new ThreadLocal(); public TokenThreadLocal() { } publi...

    springboot配置文件加载优先级

    优先级:file:./config/ ( 项目根路径下的config文件夹)file:./ (项目根路径)classpath:/config/ (类路径下的config文件夹)classpath:/ (类路径)项目根路径:pom文件所在的那个路径类路径:resources目录高优先级的配置会覆盖低优...

    nacos使用和pom多环境

    1.maven依赖 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alib...

    logback文件学习和示例

    可以打印到:类-方法-行号<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="true" scanPerio...

    openfeign使用拦截器

    1.定义一个Feign客户端,在类上添加@FeignClient注解,注解中使用url指定被调用域名或者ip,使用configuration指定一个FeignConfig类2.FeignConfig这个类中包含一个@Bean方法,此方法返回一个实现了RequestInterceptor的拦截器。3....

    springboot中全局异常捕获的实现

    1.定义一个CommonException类2.定义一个全局异常捕获类GlobalExceptionHandler,添加@RestControllerAdvice注解代码:@Getterpublic class CommonException extends RuntimeException { ...

    使用mybatis plus时,需要将创建时间和更新时间自动生成

    代码:实现MetaObjectHandler类即可@Componentpublic class AutoDateTimeHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject m...

    mybatis自动生成mapper和DO文件

    依赖:<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifact...

    使用httpclient时,get方法不能设置请求体

    重写httpget方法:import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;import java.net.URI;public class HttpGet extends HttpEntityEnclosingR...

    Jackson概率出现bean转为json时加上了类名

    不知道为什么,本地测试没有问题,转换后是包含所有属性的json字符串,没有类名。部署上去有概率出现,出现的原因未知。...

    * 和 **

    * :匹配当前目录的任意文件** :匹配任意目录以及所有子目录的任意文件application-*.yml :匹配符合此规则的文件...

    JacksonUtils

    JacksonUtils 工具类,可直接用import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.cor...

    pom文件示例和解释

    springboot项目的pom文件示例<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...

    一个非常简单的线程池

    public final class ThreadExecutor { public static final ExecutorService EXECUTOR_SERVICE = new ThreadPoolExecutor(10, 100, 3, TimeUnit.M...

    @Autowired可以作用在方法上,避免有时出现的注入失败

    @Slf4j@Component@ChannelHandler.Sharablepublic class NettyWsHandler extends SimpleChannelInboundHandler<TextWebSocketFrame> { private static ...

    springboot项目中获取tomcat启动端口

    @Component@Slf4jpublic class ServerConfig implements ApplicationListener<WebServerInitializedEvent> { private int serverPort; public int g...