知识点
文子阳
GOOD LUCK
展开
-
SpringBoot配置文件自动装配,yml文件有提示读取配置文件
添加组件 <!--SpringBoot的application配置组件--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>t原创 2021-04-12 09:28:37 · 87702 阅读 · 0 评论 -
写定时任务的参考代码
值得注意的是使用el表达式的时候一定要先注册类PropertySourcesPlaceholderConfigurer:可以用@Bean注册或者用XML的标签这里贴上源码:package task;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans原创 2017-11-23 13:40:59 · 88352 阅读 · 0 评论 -
@PropertiesSource注解读取配置文件中的数据
task.properties配置文件:corn=0/1 * * * * ?demo.url=http://www.baidu.comname=job读取方式:1加载配置文件:@PropertySource(value = "classpath:task.properties")读取:注册bean:@Beanpublic static PropertySourcesPlaceho原创 2017-11-23 13:34:32 · 96242 阅读 · 0 评论 -
读取properties配置文件的五种方式
五种方式让你在java中读取properties文件内容不再是难题一、背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题。就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,转载 2017-11-23 11:05:11 · 88488 阅读 · 0 评论 -
filter通过装饰者模式防止XSS攻击
spring boot / cloud (一) 使用filter防止XSS##一.前言###XSS(跨站脚本攻击) >跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip转载 2017-12-01 13:21:38 · 87983 阅读 · 0 评论 -
SpringMVC利用AOP实现自定义注解记录日志
本文抛砖引玉,并没有详细的介绍更全面的内容,通过一个例子让初次使用的人能够快速入门,简单的介绍一下。第一,注解:@Before – 目标方法执行前执行@After – 目标方法执行后执行@AfterReturning – 目标方法返回后执行,如果发生异常不执行@AfterThrowing – 异常时执行@Around – 在执行上面其他操作的转载 2017-11-16 17:57:26 · 87860 阅读 · 1 评论 -
java访问百度搜索功能
package Mytest.model.test;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * Java访问百度搜索功能原创 2017-11-14 14:26:13 · 94219 阅读 · 0 评论 -
java代码访问百度,返回html页面代码
package Mytest.model.test;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class HttpBaidu原创 2017-11-14 13:22:19 · 96266 阅读 · 2 评论 -
java代码调用http接口简单例子(实测可用)
package Mytest.model.test;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEn转载 2017-11-14 11:35:29 · 90498 阅读 · 0 评论 -
你真的会用Retrofit2吗?Retrofit2完全教程
你真的会用Retrofit2吗?Retrofit2完全教程 怪盗kidou 关注2016.05.15 19:20* 字数 2875 阅读 123191评论 181喜欢 722赞赏 9作者: @怪盗kidou 如需转载需在明显位置保留作者信息及原文链接Retrofit版本: 2.0.2本文注目录:Retrofit入门Ret转载 2017-11-13 17:24:12 · 87387 阅读 · 0 评论 -
用Java进行动态公式处理
最近有个需求是通过动态的配置公式 对表数据进行一些逻辑计算 目前采用的是JEP这个开源类库 目前2.4版是免费的 3.0开始收费不过功能更强大更多可配置的东西.公式实体(Formula) 配置的时候需要记录 表名(tableCode) 条件表达式(conditionExpr) 公式表达式(formulaExpr) 所需要赋的值(evaluate) 顺序号(orderNum)/** *转载 2017-11-03 15:46:01 · 96750 阅读 · 0 评论 -
下拉列表在数据库中的存储方式
前些日子同事负责一个项目模块,关于页面多个下拉框数据的存储在数据库设计上,进行相关讨论,采用的是加外键表的方式.思来想去总觉得为了有限数据的下拉框去建外键表太过冗余.但一时又没想到什么好的方案.今天操作redis的时候,联想到了Json的数据形式,非常适合有限数据量的存储.随便测试了一下挺管用.public class Mydemo { public static void mai原创 2017-11-24 10:14:39 · 90941 阅读 · 0 评论 -
拦截器中无法注入service
在拦截器中注入service时,报空指针.发现拦截器的加载时间在Spring上下文之前加载,,所以需要提前将拦截器注册到Spring上下文中失败案例:package com.example.interceptor;import org.springframework.context.annotation.Bean;import org.springframework.contex原创 2017-12-04 13:39:16 · 95940 阅读 · 0 评论 -
Java之完全链式编程
Java8的Stream操作方式实在令人心驰神往,不需要注释就能看懂的链式操作,十分简约和雅观。但是在实际编码过程中对于非集合操作是无法做到链式操作的。于是就有了一下操作,虽然功能还不够全面,但是先开源出来,有了更好的操作也请大家遵循开源精神,一起合作探讨。目录第一步:创建Chain类,这个是所有操作的主体,相当于集合中的Steam第二步:测试,所有的业务逻辑都将在一条链上完成。如有其...原创 2019-06-13 15:10:29 · 108549 阅读 · 3 评论 -
一些思考
Request中JSON数据问题的一些思考,以前做项目有用户部分分为内部用户和外部用户,请求头带上key为token的键值对。后来想想,浏览器访问了很多网站,也登陆了很多网站,如果大家的key值都叫做token怎么办。。。其实这里存在一个跨域问题。请自行研究。...原创 2019-01-29 14:39:04 · 87316 阅读 · 0 评论 -
在前后端分离Web项目中,RBAC实现的研究
在前后端分离Web项目中,RBAC实现的研究 最近手头公司的网站项目终于渐渐走出混沌,走上正轨,任务也轻松了一些,终于有时间整理和总结一下之前做的东西。以往的项目一般使用模板引擎(如ejs)渲染出完整页面,再发送到浏览器展现。但这次项目的处理方式不同,整个项目由前端AngularJS和后端NodeJS进行了前后端的分离。后端Nodejs提供静态文件服务和API接口,前端则通过AJA...转载 2018-08-01 10:33:13 · 88669 阅读 · 0 评论 -
发送HTTP POST请求工具类
package com.example.demo;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;public class HttpUtilTest { /** * @作用 使用urlconnection * @param url * @param P...转载 2018-08-01 09:55:25 · 88153 阅读 · 0 评论 -
RSA加密实例
package com.example.secret;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import java.io.IOException;import java.security.*;import java.security.spec.P...转载 2018-08-01 09:41:22 · 90629 阅读 · 0 评论 -
对称加密和非对称加密、数字签名、数字证书的区别
之前在面试的时候被问到了HTTPS,SSL这样的知识点,也没答上来,这里也简单整理一下。首先还是来解释一下基础的东东:对称加密: 加密和解密都是用同一个密钥 非对称加密: 加密用公开的密钥,解密用私钥 (私钥只有自己知道,公开的密钥大家都知道) 数字签名: 验证传输的内容是对方发送的数据 发送的数据没有被篡改过 数字证书(Certificate Author...转载 2018-07-31 20:18:57 · 95844 阅读 · 1 评论 -
高效Redis工具类
一、引言本篇博客以redis缓存为主。至于什么是redis缓存?还有没有其它的缓存?哪个缓存的性能会更好?这里就不一一做介绍了!(有兴趣的可以自己去百度一下)在日常的开发中,我们或多或少(必须)的会用到缓存。为了提高系统性能、提升用户体验度,用户体验是多么的重要;这就要求在软件设计时,不但要注重可靠性、安全性、可扩展性以及可维护性等等的一些指标,更要注重用户的体验,用户体验分很多方面,但是...转载 2018-07-31 19:37:28 · 102967 阅读 · 6 评论 -
如何写Java文档注释(Java Doc Comments)
如何写Java文档注释(Java Doc Comments)本文翻译自How to Write Doc Comments for the Javadoc Tool,但是精简了一些私以为不重要的东西本文不讨论如何使用javadoc工具自动生成文档的方法,而是主要探讨应该如何去写文档注释业余时间整理,难免有遗漏或错误,如有发现欢迎指正转载请注明 文档注释概览转载 2017-12-25 19:33:11 · 88339 阅读 · 0 评论 -
win上模拟负载均衡
后端是两台tomcat服务器,我们简称为node1 和node2,访问地址分别是 http://192.168.1.2:8080 和 http://192.168.1.4:8080前端使用nginx来对这两个服务进行负载均衡。首先下载apahce tomcat7 并在192.168.1.4和192.168.1.2上进行部署(可以分别修改两台服务器上部署的文件的index.jsp 用转载 2017-12-05 19:52:56 · 87743 阅读 · 0 评论 -
利用拦截器监控service的调用情况
拦截器package com.example.interceptor;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;/** * @Author: sun * @Email: szw3366@126.com * @Date原创 2017-12-05 13:56:37 · 88686 阅读 · 0 评论 -
Gson的使用并附上Utils
Java对象和Json之间的互转,一般用的比较多的两个类库是Jackson和Gson,下面记录一下Gson的学习使用。基础概念: Serialization:序列化,使Java对象到Json字符串的过程。 Deserialization:反序列化,字符串转换成Java对象 使用Maven管理Gson,pom.xml导入gson的依赖转载 2017-11-02 13:47:29 · 87967 阅读 · 1 评论 -
springmvc的常用接口
盘点springmvc的常用接口###springmvc是如今非常流行的web开发框架之一。我个人非常喜欢它约定优于配置的理念。它暴露出非常多的接口,可以让用户自定义自己的实现,从而可以满足大家的各种各样的需求。而springmvc也不仅仅是一个“插板”。它也提供了非常多常用的接口实现,一般地,使用它自带的实现类也即可满足大部分的需求了。看了周边好多开发者使用springmvc,真的让转载 2017-11-10 11:32:00 · 89788 阅读 · 0 评论 -
动态代理的一些思考
思考:为什么需要动态代理?,对一个类进行增强,完全可以去继承,然后重写需要增强的方法,还可以实现一些接口,产生更强大的能力,这样岂不是更好.答曰:代理就是对类中的方法进行增强,前置增强,后置增强,环绕增强,等.如果要对目标类中的所有方法进行增强,就必须重写目标类中的所有方法.在这一点上,动态代理非常的强大,只需 要实现一个方法就能对所有的方法进行增强.jdk的动态代理:创建一个代理类,原创 2017-09-18 19:50:16 · 87910 阅读 · 0 评论 -
Druid数据连接池源码分析
Druid是阿里巴巴公司的数据库连接池工具,昨天突然想学习一下阿里的druid源码,于是下载下来分析了一下。也就2个多小时粗略看了一下,中间有些知识点没见过,不懂,现查BAIDU学习。简单总结一下,边总结边继续看代码,估计错误不少,欢迎指正! 在自己看之前,想找找druid源码分析,居然在BAIDU上搜索不到任何信息,只是介绍如何配置,只能自己看过来了。这里的介绍,细节不说了,着眼转载 2017-09-18 17:15:57 · 94345 阅读 · 0 评论 -
普通架构转分布式架构带来的问题
大规模分布式系统问题集及解决方案单点一致性更新问题问题描述:当多个用户同时更新某个数据时,如何保证最终数据的一致性。如用户A,B更新数据D,A->D+1, B->D+1,最终结果D+2。解决方案:采用数据版本保证所有的更新都基于最新版本的数据。如原始数据(D,n),A,B均拿到(D,n),A更新后,数据(D+1,n+1);此时B版本过时,更新失败,强制刷新数据后,更新数据为(D+2,n转载 2017-09-26 15:00:44 · 87802 阅读 · 0 评论 -
JDBC的底层执行过程
简单机制:JDBC执行数据库操作语句,首先需要将sql语句打包成为网络字节流,传递给数据库,数据库经过解包,然后编译sql语句,最后执行,然后将结果通过字节流的形式返回给JDBC API,简单的来说大致分为以下几点:Ø JDBC打包sql语句;Ø 发送字节流至数据库;Ø 数据库解包;Ø 检查sql语法,编译sql;Ø 执行sql语句;Ø 将sql语句返回给JDB转载 2017-09-18 11:15:42 · 88829 阅读 · 0 评论 -
JAVA程序员的堕落:只知框架不懂底层原理
我曾在多个场合撰文说过,现在培训出来的企业Java开发兵团只知道使用某种框架,但完全不知道这些框架的底层原理。今天早上,在依次对三个职位的应聘者面试中,我又再次见到了这种情形。 我们的顾问公司收到了一个客户的招聘需求,要一个经验丰富并通晓SQL的Java开发人员。我们公司在这个客户那里享有非常好的声誉,于是我们从招聘代理公司要来了一批简历,开始搜寻合适的目标。 首先,关于他们的转载 2017-09-17 23:38:42 · 116776 阅读 · 32 评论 -
自己动手写java 字节流输入输出流
自己动手写java 字节流输入输出流 数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。 “流是磁盘或其它外围设备中存储的数据的源点或终点。” 1) 数据流: 一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。 2) 输入流(Input转载 2017-09-07 20:14:59 · 87626 阅读 · 0 评论 -
从volatile关键字,窥java虚拟机内存冰山一角
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java转载 2017-09-07 19:25:04 · 87630 阅读 · 0 评论 -
单例模式..需要注意
单例模式的七种写法博客分类: 设计模式多线程JVMServletIBMIDEA 转载请注明出处:http://cantellow.iteye.com/blog/838473 第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton ins转载 2017-09-07 11:24:55 · 87724 阅读 · 0 评论 -
如何保证线程执行的顺序
Thread类构造方法:1.Thread();2.Thread(String name);3.Thread(Runable r);4.Thread(Runable r, String name);thread类常用方法:start();//启动线程getId();//获得线程IDgetName();//获得线程名字getPriority();//获得优先权转载 2017-09-19 10:04:19 · 94133 阅读 · 0 评论 -
java栈和堆在多线程运行时的访问
阅读目录一、前言二、JAVA中的内存模型 三、多线程访问共享内存情况四、实例说明一、前言最近在工作上用到了一个静态方法,跟同事交流的时候,被一个问题给问倒了,只怪基础不扎实...问题大致是这样的,“在多线程环境下,静态方法中的局部变量会不会被其它线程给污染掉?”;我当时的想法:方法中的局部变量在运行的时候,是存在JAVA栈中的,方法运行结束,转载 2017-09-02 16:33:52 · 89371 阅读 · 1 评论 -
枚举实例教学
枚举类型怎么写//需要注意枚举参数必须放在私有构造函数前面public enum Call_statusEnum { //0失败;2未计算;3正在计算;4已计算;5手工重新计算 6:自动重新计算fail("0","失败"),not_calculate("2","未计算"),being_calculated("3","正在计算"),already_calc转载 2017-11-10 10:25:34 · 87510 阅读 · 0 评论 -
Spring 中配置log4j日志功能
一,添加log4j依赖包可从官网上下载该依赖包log4j-x.x.xx.jar,下载后 build path,添加依赖包 二,创建 log4j.properties 配置文件log4j.properties配置文件用来配置 日志的输出格式、输出的地址....### set log levels ###log4j.rootLogger = INFO, D转载 2017-11-01 16:05:14 · 87757 阅读 · 0 评论 -
神奇的Maven <resource>标签
构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。 src/main/java和src/test/java 这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会转载 2017-11-10 09:20:11 · 87996 阅读 · 0 评论 -
分布式锁的理解,普通锁为什么解不了分布式同步问题
分布式锁的一点理解以下内容为目前自己理解的总结,如有错误请大家指正。什么是锁在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须转载 2017-10-15 19:05:08 · 92572 阅读 · 6 评论 -
commons-pool 解析
首先抛出个常见的长连接问题: 1 都知道连接MySQL的应用中大多会使用框架例如 c3p0 ,dbcp proxool 等来管理数据库连接池。 数据库连接池毫无疑问都是采用长连接方式。 那么MySQL经典八小时问题为何产生? 我一开始的疑惑是既然是长连接必然有不停的心跳检测机制一直不停的骚扰者服务端, 那么服务端怎么还能检测到一个八个小时毫无动静的连接呢? 无非是因为八个转载 2017-10-31 10:10:57 · 88663 阅读 · 0 评论