
Java
caychen
码云:https://gitee.com/caychen/
github:https://github.com/caychen
展开
-
【Spring Cloud】OpenFeign之自动配置类FeignAutoConfiguration
等所有的 AnnotationConfigApplicationContext 子上下文 和 ApplicationContext 父上下文创建完成后,就进行 Feign 的自动化配置,@Configuration(proxyBeanMethods = false)@ConditionalOnClass(Feign.class)@EnableConfigurationProperties({ FeignClientProperties.class, FeignHttpClientProperti原创 2020-08-14 10:18:29 · 4175 阅读 · 0 评论 -
【Spring Cloud】OpenFeign之扫描FeignClient类信息
FeignClientRegistrar 做的第二件事是扫描指定包下的类文件,注册 @FeignClient 注解修饰的接口类信息://FeignClientsRegistrar#registerDefaultConfigurationpublic void registerFeignClients(AnnotationMetadata metadata, BeanDefinitionRegistry registry) { //生成自定义的ClassPathScanningCandida原创 2020-08-14 10:13:44 · 2725 阅读 · 0 评论 -
【Spring Cloud】OpenFeign之@EnableFeignClients(1)注册默认配置
四、RESTful客户端 - OpenFeignOpenFeign 是 Spring Cloud 在原有 Netflix 的 Feign 的基础之上改造成自己的远程调用组件。OpenFeign 是个声明式 RESTful 网络请求客户端,使得编写 Web 服务客户端更加方便和快捷,只需要使用 OpenFeign 提供的注解修饰定义网络请求的接口类,就可以使用该接口的实例发送 RESTful 风格的网络请求 。OpenFeign 还可以集成 Ribbon 和 Hystrix 来提供负载均衡和网络断路器的功原创 2020-07-31 17:05:35 · 5312 阅读 · 0 评论 -
【Spring Cloud】Eureka端点&集群&安全认证
3.8、Rest端点常用的 Eureka REST API 除了 /eureka/apps 之外,还有如下接口:操作http 动作接口描述注册新的应用实例POST/eureka/apps/{APP_NAME}可以输入 json 或者 xml 格式的 body,成功返回 204注销实例DELETE/eureka/apps/{APP_NAME}/{INSTANCEINFO_ID}成功返回 200发送心跳PUT/eureka/apps/{APP_NAME}/原创 2020-07-28 15:56:23 · 491 阅读 · 0 评论 -
【SpringCloud系列】服务注册与发现 - Eureka Client源码分析(3)
上一节讲述了 Eureka Server 的原理及部分源码,今天咱们来看看 Eureka Client 端的源码,功能点类似 Eureka Server。3.7、Eureka Client 源码分析Eureka Client 通过 Starter 的方式引入依赖, SpringBoot 将会为项目使用以下的自动配置类:EurekaClientAutoConfiguration:Eureka Client 自动配置类,负责 Eureka Client 中关键Bean的配置和初始化;RibbonEur原创 2020-07-26 09:52:28 · 544 阅读 · 0 评论 -
【SpringCloud系列】服务注册与发现 - Eureka Server源码分析(2)
3.6、Eureka Server 源码分析上一篇文章简单介绍了 Eureka 的一些概念,今天咱们来看看其原理和源码,首先先看 Eureka Server 的原理。3.6.1、Eureka Server启动原理本文章使用的 Eureka Server 依赖为:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netf原创 2020-07-26 09:16:56 · 352 阅读 · 0 评论 -
【SpringCloud系列】服务注册与发现 - Eureka(1)
服务注册与发现 - Eureka在不使用服务注册的前提下,如果在微服务中需要服务间调用,只能使用 RestTemplate 指定主机ip及端口号port才能进行通讯。但是这样的硬编码编写提供方地址的方式会出现如下问题:**(1)如果服务提供者的网络地址发生了变化,会影响消费者;(2)在生产环境中,每个微服务都会有多个实例来实现容灾和负载均衡,而使用硬编码的形式无法适应这种需求。**由于以上两个问题,所以出现了服务发现组件。服务提供者、服务消费者、服务发现组件关系:各个微服务在启动时,将自己的网络地原创 2020-07-24 18:38:35 · 343 阅读 · 0 评论 -
【SpringCloud系列】Spring Cloud - 简介
Spring Cloud - 简介文章目录Spring Cloud - 简介一、前言1.1 、微服务出现前的单体应用架构1.2、单体应用架构的优缺点1.3、微服务1.4、微服务优点与缺点1.5、微服务设计原则1.6、常见的微服务框架二、SpringCloud2.1、版本说明2.2、SpringCloud组成微信公众号:Java知识集训一、前言1.1 、微服务出现前的单体应用架构一个归档包(可以是JAR、WAR、EAR或其它归档格式)包含所有功能的应用程序,通常称为单体应用。而架构单体应用的方法论原创 2020-07-24 18:33:17 · 250 阅读 · 0 评论 -
【Spring Boot】(22)、Spring Boot启动配置原理
启动配置原理重要的事件回调机制:ApplicationContextInitializerSpringApplicationRunListenerApplicationRunnerCommandLineRunner前两者需要配置在META-INF/spring.factories中,而后两者只需要放在ioc容器中。启动流程1、创建SpringApplication对象:SpringApplicat...原创 2018-05-19 22:54:25 · 394 阅读 · 0 评论 -
【Spring Boot】(14)、Spring Boot处理国际化资源
1、Spring应用程序处理国际化资源的步骤: 1)、编写国际化配置文件; 2)、使用ResourceBundleMessageSource管理国际化资源文件; 3)、在页面使用fmt:message取出国际化内容。2、Spring Boot处理国际化资源步骤:1)、编写国际化配置文件,抽取页面中需要进行显示的国际化信息。2)、Spring Boot自动配置了管理国际化资源文件的组...原创 2018-05-06 21:51:25 · 5650 阅读 · 0 评论 -
【Spring Boot】(10)、Spring Boot日志框架
1、日志框架市面上的日志框架:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j...日志门面(日志的抽象层)日志的实现层JCL(Jakarta Common logging)---Apache常用的common-logging、SLF4j(Simple Logging Facade for Java)、jboss-loggingLog4j、Log4j...原创 2018-04-27 20:32:26 · 1149 阅读 · 1 评论 -
【Spring Boot】(13)、Spring Boot自动配置SpringMVC
1、SpringMVC自动配置官方文档Spring Boot官方文档:Spring Boot中Springmvc配置文档2、Spring MVC auto-configurationSpring Boot 提供了大多数SpringMVC应用常用的自动配置项。以下是Spring Boot对SpringMVC的默认配置(来自官网,自行翻译):自动配置了 ContentNegotiatingViewRe...原创 2018-05-05 23:20:11 · 986 阅读 · 0 评论 -
【Spring Boot】(12)、Spring Boot使用Thymeleaf模版引擎以及语法
1、模版引擎JSP,Velocity,Freemarker,Thymeleaf...Spring Boot推荐的模版引擎:Thymeleaf。2、引入Thymeleaf依赖<!-- 修改Spring Boot的默认版本 --><thymeleaf.version>3.0.9.RELEASE</thymeleaf.version><!-- 布局功能的支持...原创 2018-05-05 22:06:52 · 772 阅读 · 0 评论 -
【Spring Boot】(11)、Spring Boot对静态资源的规则
1、简介使用Spring Boot:(1)、创建Spring Boot应用,添加需要的模块;(2)、Spring Boot对于支持自动配置的模块已经加载完毕,只需要在配置文件中指定少量配置信息即可;(3)、编写业务逻辑代码。2、Spring Boot对静态资源的映射规则:ResourceProperties:Spring Boot静态资源配置类 @ConfigurationProperties(p...原创 2018-05-05 20:31:04 · 957 阅读 · 0 评论 -
【Spring Boot】(25)、Spring Boot使用Schedule任务调度
1、Spring中的定时任务1.1、使用xml形式任务类MyScheduler:public class MyScheduler { public void print(){ System.out.println("MyScheduler:" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd...原创 2018-05-05 08:50:30 · 3122 阅读 · 0 评论 -
【Spring Boot】(21)、Spring Boot使用外置的Servlet容器
嵌入式Servlet容器: 优点:简单,便携; 缺点:默认不支持jsp,优化定制比较复杂;使用外置Servlet容器的步骤: 1)、必须创建一个war项目,需要建立好web项目的目录结构,特别是webapp/WEB-INF/web.xml; 2)、嵌入式的Tomcat依赖的scope指定为provided;<dependency> <groupId>org....原创 2018-05-17 16:12:11 · 1688 阅读 · 1 评论 -
【Spring Boot】(17)、Spring Boot数据源属性注入与创建
一、 前言 在Spring Boot中常常会用到配置文件,最常见的莫过于数据源,基本上都使用配置文件的方式进行配置了,即在application.properties/yml中配置连接数据库的基本信息。#driver配置不需要配置,Spring Boot会从配置的url中试图获取driver名spring.datasourc.driver=com.mysql.jdbc.Driversprin...原创 2018-04-28 21:58:51 · 6934 阅读 · 0 评论 -
【Spring Boot】(23)、Spring Boot整合Mybatis
首先添加mybatis依赖:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version>原创 2018-05-26 17:35:44 · 797 阅读 · 1 评论 -
【Spring Boot】(24)、Spring Boot中使用缓存之Spring缓存
1、缓存依赖只要添加如下依赖,即可使用缓存功能。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency>2、缓存注解@Enab...原创 2018-05-26 20:53:57 · 1197 阅读 · 0 评论 -
Redis常用指令
help @group:查看redis中group组(string,hash,list,set,zset其一)的所有命令手册,如help @listhelp command:查看redis单个command命令手册,如help lpush=============================================Redis string字符串命令: set key value 设置...原创 2018-03-17 20:26:52 · 502 阅读 · 0 评论 -
【Spring Boot】(33)、SpringBoot事务管理@Transactional注解原理
1、依赖包1.1、 SpringBoot中的依赖包众所周知,在SpringBoot中凡是需要跟数据库打交道的,基本上都要显式或者隐式添加jdbc的依赖:&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;artifa原创 2018-10-24 16:18:19 · 7934 阅读 · 2 评论 -
【Spring Boot】(32)、SpringBoot集成AOP
1、添加pom依赖&amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp;gt;org.springframework.boot&amp;amp;amp;lt;/groupId&amp;amp;amp;gt; &amp;amp;amp;lt;artifactId&原创 2018-10-19 12:20:36 · 2846 阅读 · 1 评论 -
【Spring Boot】(31)、使用SpringBoot发送mail邮件
1、前言发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装。 2、Mail依赖<dependency> <groupId>org.springframework.boot</groupId>...原创 2018-09-28 17:58:29 · 64666 阅读 · 5 评论 -
【Spring注解】3、属性赋值
1、@Value配置文件 person.properties:person.nickName=张三person.age=20实体类 Person.java:@Data@AllArgsConstructor@NoArgsConstructorpublic class Person { /** * 使用@Value赋值 * 1、基本数值类型和String ...原创 2018-10-11 11:51:23 · 2249 阅读 · 0 评论 -
【Spring注解】2、Bean生命周期
1、初始化和销毁 通过@Bean注解的initMethod和destroyMethod属性 InitializingBean接口、DisposableBean接口 可以使用JSR250: @PostConstruct:在Bean创建完成并且属性值完成后,执行初始化。 @PreDestroy:在容器销毁Bean之前,通知进行清理工作。 ...原创 2018-10-11 11:12:39 · 360 阅读 · 0 评论 -
【Spring注解】1、Spring组件注册
1、@Configuration:指定该注解的类是个配置类,对应之前的配置文件 2、@Bean:指定该方法作为一个Bean组件,它会往容器中注册一个Bean组件;其中类型为返回值,id默认为方法名;也可以使用@Bean注解的name属性,来自定义id。 3、@ComponentScans:可以配置多个@ComponentScan。3...原创 2018-10-11 10:50:41 · 465 阅读 · 0 评论 -
【Spring Boot】(29)、SpringBoot整合Mybatis源码分析
在【Spring Boot】(23)、Spring Boot整合Mybatis的章节中讲述了SpringBoot整合Mybatis的过程,以及一些配置说明,这节主要讲解一下整合的源码。废话不多说,直接进入今天的主题。阅读过我之前写的文章的童靴,肯定知道SpringBoot整合第三方技术的时候,都会有一个xxxAutoConfiguration的自动配置类,咱们来一起找找看。其实在项目整合M...原创 2018-09-13 15:37:04 · 2348 阅读 · 2 评论 -
【Spring Boot】(30)、SpringBoot整合RabbitMQ
1、安装1.1、Erlang:Erlang下载地址,下载后安装即可。1.2、RabbitMQ安装RabbitMQ下载地址,下载后安装即可。注意:Erlang的版本要与RabbitMQ版本需要匹配才行。RabbitMQ Minimum required Erlang/OTP Maximum supported Erlang/OTP 3.7.x 19.3...原创 2018-09-18 10:33:56 · 3840 阅读 · 1 评论 -
【Spring Boot】(20)、Spring Boot嵌入式Servlet容器启动原理
过程&原理: 1)、Spring Boot应用启动运行run方法:public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext...原创 2018-05-17 15:48:58 · 1137 阅读 · 1 评论 -
【Spring Boot】(28)、Spring Boot中spring-data-jpa自动配置源码分析
在上一节中,我们简单的讲述了jpa的查询语法和使用教程,而这一节咱们来看看Spring Boot中对jpa是如何进行自动配置的。 在Spring Boot自动配置的时候,一旦引入spring-boot-starter-data-jpa,就会完成JpaRepositoriesAutoConfiguration的自动配置。 JpaRepositoriesAutoConfig...原创 2018-04-28 21:45:59 · 1717 阅读 · 0 评论 -
【Spring Boot】(27)、Spring Boot使用spring-data-jpa快速访问数据库
一、JPA Spring Data JPA 是Spring Data 的一个子项目,它通过提供基于JPA的Repository极大了减少了操作JPA的代码。Spring Data JPA旨在通过减少实际需要的数量来显着提高数据访问层的实现。 在Spring环境中需要配置大量的XML配置,但是SpringBoot基本上帮助我们配置好了,我们只需要简单地配置一下DataSource和...原创 2018-04-28 21:43:10 · 1268 阅读 · 0 评论 -
SpringBoot使用模板引擎
springboot使用thymeleaf:1、加入spring-boot-starter-thymeleaf依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifact...原创 2018-03-20 15:13:35 · 14623 阅读 · 0 评论 -
使用SpringMVC正确加载静态资源文件
初学Springmvc的人都会碰到一个令人头痛的问题那就是为什么我配置好web.xml中的dispatchservlet后,js,css,甚至gif都不能正常显示了我们来看看我们配置的web.xml<context-param> <param-name>contextConfigLocation</param-name> <param-value&...原创 2018-03-20 14:47:32 · 8830 阅读 · 0 评论 -
c3p0详细配置(c3p0-config.xml)及使用
参数详细说明请跳转:数据库连接池c3p0常用配置说明<c3p0-config><default-config> <!-- 数据库驱动名 --> <property name="driverClass" ></properties> <!-- ..原创 2018-03-20 14:40:13 · 54311 阅读 · 2 评论 -
数据库连接池c3p0常用配置说明
1.最常用配置initialPoolSize: 连接池初始化时创建的连接数,default : 3(建议使用) minPoolSize: 连接池保持的最小连接数,default : 3(建议使用) maxPoolSize: 连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,default : 1...原创 2018-03-20 14:31:49 · 5551 阅读 · 0 评论 -
windows系统下在tomcat中集成solr服务器
步骤:1、准备solr6(http://lucene.apache.org/solr/) 和 tomcat8(http://tomcat.apache.org)2、复制一份tomcat8,起名为apache-tomcat-xxx.solr3、解压solr6后将solr-xxx/server/server-webapp/目录下的webapp文件夹,复制粘贴到tomcat下的webapps下,并重命名...原创 2018-03-17 21:01:18 · 468 阅读 · 0 评论 -
Java注解
元数据 也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制,有两个: @Retention 和 @Target. @Retention :用来说明该注解类的生命周期。它有以下三个参数: RetentionPolicy.SOURCE : 注解只保留在源文件中 RetentionPolicy.CLASS : 注解保留在class文件中,在加载到JVM虚拟机时丢弃...原创 2018-03-17 20:48:33 · 452 阅读 · 0 评论 -
【转载】Spring Boot中集成Spring Security 专题
本文转自原文链接Spring SecuritySpring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架。除了常规的Authentication和Authorization之外,Spring Security还提供了诸如ACLs,LDAP,JAAS,CAS等高级特性以满足复杂场景下的安全需求。虽然功能强大,Spring Securi...转载 2018-03-16 17:58:55 · 2173 阅读 · 0 评论 -
Session和Cookie的区别与联系
Session的概念Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有S...原创 2018-03-16 14:31:33 · 504 阅读 · 0 评论 -
Mybatis配置文件常用标签详解
XML 映射配置文件MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息。文档的顶层结构如下:configuration 配置properties 属性settings 设置typeAliases 类型别名typeHandlers 类型处理器objectFactory 对象工厂plugins 插件environments 环境...原创 2018-03-15 22:01:16 · 4510 阅读 · 0 评论