Java高级
文章平均质量分 93
nihui123
现在在修炼中
展开
-
Spring深入理解
在学习Spring之前首先来看一张图,通过对于这张图的理解进入我们需要学习的Java框架Spring。 这张图上展示了一个基于SSH,B/S结构的单体Java应用的搭建过程,首先通过浏览器进入到Filter拦截器,进入到Structs2,通过Service层进入到Hibernate,从而进行数据库,经过而这整个过程都...原创 2018-10-01 16:15:30 · 77108 阅读 · 13 评论 -
SpringBoot 自动配置原理
创建项目通过Spring Initialize创建SpringBoot项目而接下来要说的是关于配置文件的事情。关乎配置文件可以参考官方文档。对于配置文件来说到底在配置文件里面可以进行配置那些内容,自动配置的原理又是什么东西呢?自动配置原理在SpringBoot启动的时候加载主配置类,开启了自动配置的功能,通过@EnableAutoConfiguration注解开启自动配置的功能。@Im...原创 2019-03-10 18:16:47 · 1404 阅读 · 0 评论 -
SpringBoot的@Conditional和自动配置类生效
@Conditional原理 在之前的博客中提到了关于自动配置的原理,但是在自动配置的时候有很多的判断,只有当这些判断都成功之后在自动配置的时候才会成功。但是我们会发现一个问题,当我们使用@Bean注解往容器中添加组件的时候也会有很多的判断。这里我们还是以HttpEncodingAutoConfiguration自动注解来说。在HttpEncodingAutoConfiguration类中有...原创 2019-03-14 20:47:56 · 13574 阅读 · 0 评论 -
SpringBoot与日志slf4j使用原理
引言 在这篇博客中主要介绍的关于日志的使用,对于日志作为在开发中一个比较重要的工具,对于开发人员查找应用的错误是一个比较好的方式。对于日志的分析也是掌握应用的生存状态的最好的办法。日志框架使用日志配置日志问题使用的System.out的方式进行调试信息的输出麻烦如果要统计日志信息麻烦。如果要进行日志敏感信息的隐藏,日志归档的功能,等等功能麻烦如果要进行日志功能的扩展麻烦...原创 2019-03-14 21:35:40 · 1805 阅读 · 0 评论 -
SpringBoot应用场景启动器
SpringBoot主程序类,主入口项目目录结构下面的图中展示了上一篇博客中创建的入门程序,从这里我们开始了解关于SpringBoot程序启动原理我们知道在Java中,每一个Java应用程序都有一个主方法,而这个个主方法在应用启动的时候作为应用程序的入口,当然在SpringBoot中也存在一个主的程序入口,这个程序入口就是由@SpringBootApplication注解标记的的一个类,通...原创 2019-03-07 21:17:50 · 2869 阅读 · 0 评论 -
SpringBoot整合Shiro
Shiro简介 Apache Shiro是一个开源的轻量级的Java安全框架,它提供了身份认证、授权、密码管理、会话管理等操作。我们知道在Spring中也有一个跟它功能差不多的框架Spring Security,Shiro框架可以更加直观的提供安全性操作,在SSM框架中整合Shrio的配置步骤比较多。但是争对SpringBoot,在SpringBoot官方也提供了对应的启动器。这样的话化简了S...原创 2019-03-16 18:22:57 · 1683 阅读 · 0 评论 -
SpringBoot @Cacheable缓存入门程序
导语在之前的博客中分享了关于SpringBoot缓存的一些基本的概念,在这篇博客中提供一个小小的入门的实例,通过这个实例可以更好的了解关于SpringBoot缓存有关的知识点。 首先既然是缓存的使用就不得不提及关于缓存的使用场景,在实际的开发中很多的地方都是需要使用到缓存的技术。1.场景1:和数据库中的数据结构保持一致,原样缓存2.场景2:列表排序分页场景的缓存3.场景3:较大的...原创 2019-04-03 22:51:44 · 8383 阅读 · 0 评论 -
SpringBoot SimpleCacheConfiguration的自动配置原理
引言 在之前的博客中分享了简单的SpringBoot缓存的HelloWorld程序,在篇博客中主要来分析一下SpringBoot对于缓存自动配置的原理缓存自动配置原理 首先在SpringBoot自动配置原理中有一个概念,就是所有的自动配置命名规则都是XXXAutoConfiguration的类。在这里对于缓存的自动配置也是有对应的CacheAutoConfiguration的配置类。...原创 2019-04-05 21:35:05 · 3685 阅读 · 0 评论 -
SpringBoot @Cacheable注解的属性使用
cacheNames和value指定缓存组件的名字,通过下面代码可以看出可以将返回结果放在哪个缓存中,可以通过数组的方式指定多个缓存 /** * Alias for {@link #cacheNames}. */ @AliasFor("cacheNames") String[] value() default {}; /** * Names of the caches in...原创 2019-04-06 14:39:17 · 26448 阅读 · 1 评论 -
SpringBoot @CachePut注解的使用原理
@CachePut既调用方法,又更新缓存数据在之前的分享的时候对于@Cacheable注解是在方法调用之前先去插叙缓存,但是CachePut注解是先调用方法,然后将方法的返回值放入到缓存中。测试步骤1.先进行员工数据的查找2.进行员工数据的更新第一次请求的时候由于缓存中没有数据,所以就进行查询数据库的操作并打印出对应的SQL。第二次请求的时候由于数据已经存在于缓存中所以就不会进行数...原创 2019-04-06 15:36:50 · 9926 阅读 · 3 评论 -
SOFA RPC 详细介绍
简介 SOFA 作为蚂蚁金服自主研发的分布式的系统中间件,包含金融级云原生的架构所需要的各种组件,其中包括微服务的研发框架、RPC调用框架、服务的注册中心、分布式定时任务、限流/熔断机制、动态配置的推送功能、分布式的链路追踪、Metrics监控、分布式高可用队列、分布式事务框架、分布式数据库代理等组件。是在金融领域完整的分布式解决方案。 SOFA作为蚂蚁金服的开源的高性能RPC框架。 ...原创 2019-04-27 00:26:18 · 11567 阅读 · 3 评论 -
SpringBoot配置Profile以及配置文件的加载位置
Profile介绍Profile是Spring在不同环境的使用的时候提供的不同的配置方案,在Spring源码中对于Profile的解析也是放在第一位的。Spring配置解析的时候第一个判断的就是Profile,通过这种方式可以进行快速的参数切换。1、多个profile文件在配置文件编写的时候可以通过如下的方式进行设置,设置对应的环境参数就可以使用这个而配置方式。application...原创 2019-03-10 13:56:36 · 2648 阅读 · 0 评论 -
SpringBoot配置@PropertySource、@ImportResource、@Bean注解
引言@ConfigurationProperties与@Bean结合为属性赋值与@PropertySource(只能用properties文件)结合读取指定文件@Validation支持使用JSR303为配置文件进行值校验@ImportResource读取外部的配置文件@PropertySource作用加载指定的配置文件。在之前我们知道@Configurati...原创 2019-03-10 11:59:33 · 1915 阅读 · 0 评论 -
Spring基于注解的方式二
Spring基于注解二上一次介绍了很多的关于spring的基本的注解,这篇文章描述一下关于Spring注解的基本的原理,从简单的例子入手@Configuration@Import({Color.class,Red.class,MyImportSelector.class,MyImportBeanDefinitionRegistrar.class})/** * @Import 导入组件,i...原创 2018-12-05 09:20:24 · 1717 阅读 · 0 评论 -
Spring基于注解的方式一
Spring基于注解的方式一Spring注解简介之前的时候我们学习的Spring都是基于Spring配置文件的形式来编写,现在很多的情况下使用SpringBoot的时候是基于注解的形式,这里我们首先要了解的是Java中的注解是什么意思。对于注解和注释要做一定的区别。首先我们介绍一下关于Spring的简单的注解,主要有以下的一些常用的注解1.@Controller 控制层对象注解2.@Se...原创 2018-12-04 09:37:55 · 1371 阅读 · 0 评论 -
Java高并发入门-线程初步
Java高并发入门-线程初步线程与进程之间的关系进程就是我们运行在计算机上的一个程序,对应Java程序来说就是运行在计算机上的Java应用程序,这个程序在运行的时候就会创建了一个进程,服务器上就会存在一个Java进程。而对于线程来讲,线程是运行在进程里面。为了执行一条具体任务。比如说一个人同时可以做两件时间,同时听音乐或者看电视等操作。单线程的程序来说就只能等到某个线程执行完毕之后才会执行下一...原创 2019-01-21 21:45:41 · 1880 阅读 · 0 评论 -
Java高并发入门-线程初步(二)
Java高并发入门详细讲解上期回顾及问题总结上次说了创建线程的两种常用方式,第三种方式在后面的更新中会讲解到。这里对于上一节的内容做个回顾。在上一节中说到了创建多线程的问题,分析了Thread的源码,提出了三种的线程实现的方式。简单的分析了共享资源锁竞争的问题,同样也引出了锁竞争的问题。这次我们就来结合实践详细的说说关于创建线程的其他的注意点。入门例子首先你是一个非常爱音乐的人,...原创 2019-01-21 22:30:42 · 1918 阅读 · 0 评论 -
Netty框架使用
前言首先在使用Netty框架的时候需要了解Netty是一个什么东西。Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架。使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。N...原创 2019-02-15 14:24:54 · 4826 阅读 · 0 评论 -
Maven使用创建项目(一)
前言这篇文章是个人基于之前的项目,对于项目的部署和打包的总结。对于项目管理和自动化部署都可以使用Maven脚本或者是使用Ant脚本使用。由于个人的原因现在才做了一些小小的总结。Ant引言首先我们需要知道的,对于Ant和Maven都是项目构建工具。但是这两个工具之间还有有什么样的区别和联系呢?当我们使用eclipse创建一个项目并且运行这个项目的时候,发生了什么事情呢?在eclipse中不管...原创 2019-02-23 15:08:43 · 1829 阅读 · 0 评论 -
Dubbo RESTful风格
参考链接:https://www.cnblogs.com/linjunwei2017/p/7640130.html原创 2019-02-27 23:32:59 · 1465 阅读 · 0 评论 -
Spring Boot 入门程序
Spring Boot简介Spring Boot是Spring在2014年的时候伴随着Spring4.0系列开发的一站式解决方案。整个知识点可以从Spring官网上看到,Spring Boot 简化了Spring的应用开发,是整个Spring技术栈的大整合,是一个J2EE开发的一站式解决方案。用户可以通过少量的配置来实现对于Spring Boot的使用。Spring全家桶Spring Boo...原创 2019-03-06 23:08:08 · 2205 阅读 · 0 评论 -
SpringBoot YML配置文件
引言在之前的博客中说到了怎么样去创建一个SpringBoot的项目以及创建这个Spring项目之后怎么去启动使用这个SpringBoot的项目文件,还有就是SpringBoot项目的启动原理。下面的博客中就开始进入到SpringBoot关于配置的学习。项目介绍在使用IDEA创建好SpringBoot项目的时候IDEA会自动为我们创建一些东西,下面来对这些内容进行简单的说明。在使用IDE...原创 2019-03-09 20:37:49 · 40897 阅读 · 4 评论 -
SpringBoot配置@ConfigurationProperties与@Value的区别
引言之前创建完成项目之后使用了yml配置文件。并且使用了一个@ConfigurationProperties注解,这次博客主要说说关于@ConfigurationProperties和Spring的@Value注解的区别。@ConfigurationProperties与@Value的区别@Component@ConfigurationProperties(prefix = "person...原创 2019-03-09 22:10:51 · 4911 阅读 · 0 评论 -
Netty组件详解
之前在做项目的时候使用到了Netty这个网络框架,对于Java中的IO模型有了进一步的了解,熟悉的NIO非阻塞的模式。而Netty就是对于Java NIO 的高级封装。这篇文章就是个人根据Netty4.1.6的源码,进行了总结。Netty组件NioEventLoop 对于Netty中的NioEventLoop这个组件来说,它就是类似于写的普通网络编程中的通过创建一个新的线程Thread...原创 2019-05-02 13:44:52 · 2094 阅读 · 0 评论