java
文章平均质量分 96
困境囚徒
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Lambda之Supplier
特质生成者模型,无输入参数,返回指定类型测试测试参照@Datapublic static class Foo { String strVal = "Hello"; int intVal = 1; Double doubleVal = 2.0; Long longVal = 3L; Boolean trueVal = true; String strTmp; int intTmp = 1; Double doubleTmp; Long longTmp;}万能型Su原创 2020-06-18 10:30:46 · 1166 阅读 · 0 评论 -
Lambda之Function
特质函数,接收一个或多个参数,返回指定类型结果测试测试数据@Datapublic static class Foo { String strVal = "Hello"; int intVal = 1; Double doubleVal = 2.0; Long longVal = 3L; Boolean trueVal = true; String strTmp; int intTmp = 1; Double doubleTmp; Long longTmp;}万能原创 2020-06-18 10:12:52 · 2160 阅读 · 0 评论 -
Lambda之Consumer
特质消费者模式,接收1个或多个参数,进行逻辑处理,无返回值。测试测试数据@Datapublic static class Foo { String strVal = "Hello"; int intVal = 1; Double doubleVal = 2.0; Long longVal = 3L; Boolean trueVal = true; String strTmp; int intTmp = 1; Double doubleTmp; Long longTmp;原创 2020-06-17 18:28:39 · 1916 阅读 · 0 评论 -
基于Cglib的高效copy工具类
这里使用的cglib是spring core包的。import lombok.experimental.Accessors;import lombok.extern.slf4j.Slf4j;import org.springframework.cglib.beans.BeanCopier;import org.springframework.cglib.core.Converter;import org.springframework.core.convert.ConversionFailedEx原创 2020-06-15 12:05:52 · 1605 阅读 · 0 评论 -
Spring源码中的工具类
spring-core整合了asm和cglib包,并定制了部分功能StandardAnnotationMetadata获取类描述信息,根据注解生成AnnotatedGenericBeanDefinition时很有用 StandardAnnotationMetadata.from(type);AnnotatedElementUtils、AnnotationUtils查找类注释Method m = Leaf.class.getMethod("annotatedOnLeaf");assertTha原创 2020-06-15 11:57:30 · 772 阅读 · 0 评论 -
Mybatis加载时序图
元数据读取、配置流程:XMLConfigBuilderXPathParserConfigurationMapperRegistryMapperAnnotXMLMapperBuilderMapperBuildResultMapResolverXMLStatemXMLIncludePropertyParserVariableToGenericTokenParserXMLScriptBuilderTextSqlNodeDynamicCheckMixedSqlNodeDynamicSqlSourceSelectK原创 2020-06-15 11:53:39 · 312 阅读 · 0 评论 -
Spring Security原理简略分析
导读Spring Security是一个提供身份验证、授权和针对常见攻击的保护的框架。它对命令式和反应式应用程序都提供了一流的支持,是保护基于spring的应用程序的事实标准。原理流程图整体流程:clientFilterDelegatingFilterProxFilterChainProxySecurityFilterChainSecurityContextPDispatcheServletFilter拦截请求进行链式调用挂载的filter委托调用Spring实现的Filter委托调用Securi原创 2020-06-15 11:46:50 · 831 阅读 · 0 评论 -
源码分析:SpringBoot项目启动过程
SpringBoot源码分析前置准备保存资源加载路径即传入的pringApplication.run传入的FactoryDemoApplication.class这个参数@SpringBootApplicationpublic class FactoryDemoApplication { public static void main(String[] args) { ...原创 2020-04-16 19:57:51 · 968 阅读 · 0 评论 -
Spring MVC使用Model接收带有【特殊字符】的请求值最佳实践
前言单纯为了解决问题,请直接下跳转【最佳实践->第三种方案】。Spring MVC使用时候wield便于数据传输,都会使用Model进行接收参数,见实例:请求:127.0.0.1:8080/test?myName=zs&myAge=10接收请求:@GetMapping("/demo")public R<String> query(Demo demo) ...原创 2020-04-02 18:56:58 · 1110 阅读 · 0 评论 -
IDEA一些开发小技巧
IDEA小技巧快捷搜索双击shiftvar声明变量创建循环for、forEach、fori自定义常用代码块自定义代码模板Debug过程中对数据操作智能选中创建环绕代码块快捷键ctrl+alt+t版本控制项目查看行修改记录创建书签,快速定位代码、包ctrl+F11标记,ctrl+标记跳转对应书签,在书签位置ctrl+F11取消书签,shift+F11查看书签...原创 2020-03-18 16:54:46 · 582 阅读 · 4 评论 -
SDKMAN:一款轻松管理多版本JDK的小工具
SDKMAN:是用于管理多个软件开发套件的并行版本的便捷工具。该工具对Java开发人员特别有用,因为它支持JVM的SDK,例如Java,Groovy,Scala,Kotlin和Ceylon。还支持Gradle,Maven,Spring Boot和许多其他工具。安装步骤下载脚本curl -s "https://get.sdkman.io" | bash启动sdkmansource "...原创 2020-03-18 15:35:26 · 3146 阅读 · 1 评论 -
构建MVN项目脚手架(模板)
1、建立一个普通的MAVEN项目,修改pom、修改包结构,放入初始化化的配置文件脚本等;2、在项目目录下执行生成模板命令, 编译生成模板文件;mvn archetype:create-from-project3、模板文件生成完毕后,在“项目目录\generated-sources\archetype”中查看,对模板目录、文件进行微调,如果有大的目录变更要注意调整“META-INF/m...原创 2019-09-10 16:31:47 · 248 阅读 · 0 评论 -
Netty入门学习
如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用。然而,有时候一个通用的协议和他的实现并没有覆盖一些场景。比如我们无法使用一个通用的HTTP服务器来处理大文件、电子邮件、近实时消息比如财务信息和多人游戏数据。我们需要一个合适的协议来处理一些特定场景原创 2017-08-23 09:37:40 · 384 阅读 · 0 评论 -
Maven使用
仓库配置配置Maven本地仓库存放位置配置镜像仓库地址POM配置仓库地址远程仓库认证访问仓库优先级Maven项目构建工程种类(POM、JAR、WAR)及标签定义工程关系依赖继承聚合Maven插件编译器插件pom中配置当前工程插件全局编译器插件配置Tomcat 管理插件本地应用远程热部署Maven私服环境搭建仓库类型简述私服应用...原创 2018-04-20 08:51:44 · 287 阅读 · 0 评论 -
(快速入门)MyBatis Generator源码分析修改和自定义插件
原创 2018-05-09 19:21:28 · 9194 阅读 · 6 评论 -
JAVA高并发编程
synchronized 关键字同步方法同步代码块锁的底层实现锁的种类volatile 关键字wait¬ifyAtomicXxx 类型组CountDownLatch 门闩锁的重入ReentrantLock同步容器Map/SetListQueueThreadPool&ExecutorExecutorExecutorServiceFuture...转载 2018-05-07 09:30:26 · 32125 阅读 · 1 评论 -
JAVA资料库
整合MyBatis进行批量操作一个批量插入,一个批量更新,此扩展Mapper继承原Mapper,这样注入的时候就不用注入2个Mapper接口。Tips:进行批量操作,要设置参数allowMultiQueries=true,不然无法进行批量更新。spring.datasource.url=jdbc:mysql://${ip}:${port}/test?useUnicode=true&amp;amp;amp;amp;am...原创 2018-12-29 09:56:23 · 1308 阅读 · 0 评论 -
Spring源码杂集
BeanFactoryBean工厂实现应该尽可能的支持bean的生命周期接口,完整的初始化及其标准顺序为:BeanNameAware#setBeanName(设置bean名称) BeanClassLoaderAware#setBeanClassLoader(设置类加载器) BeanFactoryAware#setBeanFactory(设置Bean工厂) org.springfram...原创 2019-01-07 13:34:43 · 221 阅读 · 0 评论 -
Maven将本地jar上传私服和多jar合并
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://原创 2019-01-07 17:54:19 · 738 阅读 · 0 评论 -
Mybatis generator 源码修改--逆向生成常用查询
基于Mybatis generator 1.3.7源码修改,增加通过配置方式逆向生成常用查询方法,节省部分封装mapper方法的时间。原创 2019-06-21 17:18:14 · 1361 阅读 · 0 评论 -
JVM笔记
JVM模型虚拟机栈:一个线程一个栈,一个方法一个栈帧 堆:放对象的,占用内存最大的堆内存1、新生代(New| Young): ○ eden:新new出来的对象存在这里,特别大的放在老年代(old)里 ○ surivivi(有 2块一模一样的空间s0,s1):幸存者(被垃圾回收之后,还活着),即new 出来的对象, 在GC时还在被对象引用,这是就会把new的对象移原创 2017-08-23 09:24:12 · 286 阅读 · 0 评论
分享