![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
小白人生
这个作者很懒,什么都没留下…
展开
-
Springboot结合线程池使用Scheduled
定义线程池@Configurationpublic class AlertThreadPoolExecutor { @Bean(name = "AlertExecutorService") public ExecutorService getExecutorService(){ int corePoolSize = 2; //核心线程数 int maximumPoolSize = 4; //最大线程数 long keepAliveTi原创 2022-03-18 10:00:12 · 560 阅读 · 0 评论 -
restTemplate发送https请求免证书
import lombok.extern.slf4j.Slf4j;import org.apache.http.client.HttpClient;import org.apache.http.client.config.RequestConfig;import org.apache.http.config.Registry;import org.apache.http.config.RegistryBuilder;import org.apache.http.conn.HttpClientCon原创 2022-02-23 09:34:51 · 371 阅读 · 0 评论 -
java 压缩、解压缩 tar.gz
java 压缩解压缩 tar.gz原创 2022-01-25 16:16:40 · 5494 阅读 · 2 评论 -
解析xml转对象(适用于根节点和一级节点)
import org.dom4j.*;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.List;/** * ClassName: XmlUtils * Date: 2021/1.原创 2021-12-29 14:29:49 · 1588 阅读 · 0 评论 -
JDK8新特新
JDK8新特新的用法原创 2021-12-13 11:29:01 · 199 阅读 · 0 评论 -
new对象如何使用 @mapper或者 @service
需求定时任务中注册task这里如果直接使用@AutowiredDynamicPrintTask task;这个task的话 因为设置的是单例的 所以 不管你加多少 task 他永远只会以最后一个task 来执行所有的任务所以这里需要用 new的形式来创建 task但是这个task 里面 用到了 很多 mapper 如果直接 用 new 的话 这些mapper 则会报 null所以我们需要通过 ApplicationContext 来获取上下文解决方案public class S原创 2021-11-16 10:43:39 · 1570 阅读 · 0 评论 -
schedule 通过数据库 动态新增任务
任务@Componentpublic class DynamicPrintTask implements Runnable { public static Boolean isRun = false; @Autowired SpringScheduledCronRepository springScheduledCronRepository; @Override public void run() { if (isRun) return;原创 2021-11-01 15:47:42 · 409 阅读 · 0 评论 -
远程部署openoffice
tar -zxvf Apache_OpenOffice_4.1.10_Linux_x86-64_install-rpm_zh-CN.tar.gz cd zh-CN/RPMS/yum localinstall *.rpmcd desktop-integration/ yum localinstall openoffice4.1.10-redhat-menus-4.1.10-9807.noarch.rpm yum install libXext.x86_64 cd /usr/lib64 cp原创 2021-08-27 15:21:41 · 439 阅读 · 0 评论 -
如何使用自定义注解
元注解元注解用来在声明新注解时指定新注解的一些特性@Target 指定新注解标注的位置,比如类、字段、方法等,取值有ElementType.Method等@Retention 指定新注解的信息保留到什么时候,取值有RetentionPolicy.RUNTIME等@Inherited 指定新注解标注在父类上时可被子类继承常用注解@Target(ElementType.METHOD) // 指定新注解可以标注在方法上@Retention(RetentionPolicy.RUNTIME) // 指原创 2021-05-20 11:20:04 · 228 阅读 · 0 评论 -
如何解决跨域问题
跨域问题是由于游览器同源策略导致 前端游览器访问和发送ajax请求中协议、ip、端口不一致都会导致跨域问题 出现跨域问题还是会将请求发送到后台所以一般处理跨域问题都在后端解决 只需要在返回的响应头里面加上Access-Control-Allow-Origin值为*即可...原创 2021-04-11 22:22:03 · 79 阅读 · 0 评论 -
docker安装maven
拉取镜像docker pull sonatype/nexus3将容器/var/nexus-data挂载到主机/root/nexus-data目录启动docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3查看启动日志docker attach 容器id关闭防火墙service iptables stop访问端口号 8081...原创 2020-09-15 23:17:58 · 5374 阅读 · 1 评论 -
mq简单实现
mq简单实现(为网络简单版)public class MqServer { public static void main(String[] args) throws InterruptedException { //定义消息队列容器 LinkedBlockingDeque<String> blockingDeque = new LinkedBlockingDeque<>(); //创建生产者线程 Thread原创 2020-08-16 14:44:52 · 958 阅读 · 0 评论 -
cas自旋锁编写
public class AtomicLock { //V 内存值 初始为0 private AtomicLong atomicLong = new AtomicLong(0); private Thread lockCurrentThread; /** * 获取锁 * @return 将内存值改为1 */ public boolean myLock(){ //设置的初始值为0, expect 也为 0 也就是E原创 2020-07-05 15:16:06 · 227 阅读 · 0 评论 -
什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题
什么是序列化Java对象序列化是指将Java对象转化为·字节序列的过程而反序列化则是将字节序列转化为Java对象的过程为什么需要序列化我们知道不同线程/进程进行远程通信时可以相互发送各种数据,包括文本图片音视频等,Java对象不能直接传输,所以需要转化为二进制序列传输,所以需要序列化怎么序列化实现Serializable接口实现这个接口就会添加一个serialVersionUID的版本...原创 2020-04-09 21:54:32 · 1916 阅读 · 0 评论 -
反射原理和动态代理
反射原理Java反射机制就是在运行期通过类的Class对象获取和操作类的对象,属性,和方法Java类被加载后,会生成一个Class类型 对象,这个对象可以被认为是这个类的字节码文件,反射机制就是通过这个字节码文件获取和操作这个类的一切Java的反射机制和实现只要是通过class ,Constructor,Field,Method 来对该类进行操作反射创建类的三种方法.class;.ge...原创 2020-04-09 19:25:00 · 114 阅读 · 0 评论 -
feign调用示例
admin为被调用者admin接口case作为调用者启动类类上需要添加调用模块原创 2020-03-03 11:36:45 · 457 阅读 · 0 评论 -
yum 下载 不安装
这里我们需要 libaio-devel.x86_64yum install yum-utils -yyumdownloader libaio-devel.x86_64 --resolve --destdir=/opt/java/原创 2020-01-15 17:28:44 · 301 阅读 · 0 评论 -
DockerCompose 构建dubbo-admin服务
准备环境准备好docker 和docker-compose安装gityum install git安装mavenyum install maven配置环境变量vi /etc/profile# set Maven environmentexport MAVEN_HOME=/usr/local/maven/apache-maven-3.5.2export PATH=$MAVEN_H...原创 2020-01-13 15:35:44 · 575 阅读 · 0 评论 -
Docker安装中文可视化shipyard
docker pull rethinkdbdocker pull microbox/etcddocker pull shipyard/docker-proxydocker pull swarmdocker pull dockerclub/shipyard将原先脚本修改为中文脚本wget https://raw.githubusercontent.com/shipyard/shipyar...原创 2020-01-08 11:05:52 · 596 阅读 · 0 评论 -
DockerFile构建镜像
首先创建文件夹 和文件[root@localhost ~]# mkdir docker[root@localhost ~]# cd docker/[root@localhost docker]# mkdir dockerFile[root@localhost docker]# cd dockerFile[root@localhost dockerFile]# mkdir nginx[r...原创 2020-01-03 10:41:37 · 81 阅读 · 0 评论 -
初入网络编程之socket
Socket服务端 Serviceimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;/** *...原创 2019-12-16 19:48:38 · 129 阅读 · 0 评论 -
Mybatis级联查询
先写一下需求: 省 编号 001 002 003 ..... 市 编号00101 00102 00103 00201 ...原创 2019-12-13 16:49:31 · 120 阅读 · 0 评论 -
字符串30.0 转integer
lo.get(3).toString() 为获取的支出穿 30.0int level = 0 ;if (!StringUtils.isEmpty(lo.get(3).toString())){ level=new Double(Double.parseDouble(lo.get(3).toString())).intValue(); }原创 2019-11-28 10:05:59 · 829 阅读 · 0 评论 -
docker安装 ElasticSearch
docker安装 ElasticSearchdocker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1docker run -d --name es -p 9999:9200 -p 10000:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e “discovery.type=sin...原创 2019-11-12 17:04:57 · 92 阅读 · 0 评论 -
xml与json入坑经历
对于没有什么编程经验的我来说,在学习的途中遇到了很多麻烦,今天遇到的xml和json数据格式问题卡了我一天,最终在大佬的点拨下,突然就豁然开朗,下面先说说问题类容吧这里返回的是xml的数据格式 我想把它换成json后来各种百度 比如加上@ResponseBody 其实根本没用 因为我 在上面加上了@RestController 后来@RequestMapping注解上加一个属性produc...原创 2019-11-06 00:17:57 · 198 阅读 · 0 评论 -
spring 拦截器
1.拦截器定义这里定义一个jwt拦截器,继承HandlerInterceptor 重写里面的方法实现拦截@Component@Slf4jpublic class JwtInterceptor implements HandlerInterceptor { /** * 操作之前拦截 * @param request * @param response...原创 2019-11-05 16:24:10 · 91 阅读 · 0 评论 -
docker 安装 mongdb
拉取镜像docker pull mongo以上拉取的是最新版本,如需选择版本在后面加上版本号即可启动镜像docker run -p 27017:27017 -td mongo查看镜像docker ps进入容器docker exec -it 镜像id /bin/bash 进入mongdb创建账户并退出创建管理账户exit 退出mongo --port 2701...原创 2019-10-31 10:52:32 · 186 阅读 · 0 评论 -
Http请求
什么是Http请求Http请求是客户端与服务器端超文本传输协议(底层使用scoekt TCP长连接),基于请求和响应 同步请求,实际上http是对scoekt 的封装Http协议中分为 请求头、请求体、响应头、响应体Http重定向原理客户端向服务器端发送请求的时候,服务器端如果重定向的话,返回状态302给客户端,在响应头中存放location这个字段,location对应的值就是重定向地址...原创 2019-10-30 10:23:27 · 271 阅读 · 0 评论 -
Http请求防盗链
Http请求防盗链什么是防盗链如何实现防盗链使用过滤器判断请求头Referer记录请求来源什么是防盗链比如A网站有一张图片,被B网站直接通过img标签属性引入,直接盗用A网站图片展示。如何实现防盗链判断http请求头Referer域中的记录来源的值,如果和当前访问的域名不一致的情况下,说明该图片可能被其他服务器盗用。使用过滤器判断请求头Referer记录请求来源@WebFilter(f...原创 2019-10-28 08:50:04 · 205 阅读 · 0 评论 -
SQL注入
什么是SQL注入SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的作。造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码SQL注入防攻击手段不要使用拼接SQL语句方式、最好使用预编译方式...原创 2019-10-27 14:54:03 · 86 阅读 · 0 评论 -
XSS攻击
XSS攻击什么是XSS攻击手段如何防御XSS攻击什么是XSS攻击手段XSS攻击使用Javascript脚本注入进行攻击例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端。**对应html源代码: <script>alert(‘sss’)</script>**如何防御XSS攻击将脚本特殊字符,转换成htm...原创 2019-10-26 23:11:58 · 99 阅读 · 0 评论 -
java中clone的使用场景
Persion.java类。测试类测试结果这里为什么list中的每一个persion对象中年龄是20呢,简单点来看,list里面存的每一个对象都是同一个persion,及每一个对象指向的是同一个地址,所以在list中的对象全部都是最后一个persion故而全部年龄都是20,进而想到了new一个对象测试结果是行不通的原因在于将persion赋值给persion1 同样的道理 最后...原创 2019-10-10 12:43:33 · 2072 阅读 · 0 评论