
Spring
文章平均质量分 84
TONY Yan
这个作者很懒,什么都没留下…
展开
-
SpringBoot 基于SpringFox Swagger REST API文档自动生成
SpringBoot 基于SpringFox Swagger REST API文档自动生成 一、maven 配置二、初始化Swagger2的配置三、Controller的配置四、启动项目查看Swagger-UI五、直接通过Swagger UI 调用接口 感觉有一阵子都没有写博客了,因为工作比较忙也有一段时间没有去更新了。希望过年休息这...原创 2019-01-23 17:58:11 · 384 阅读 · 0 评论 -
SpringCloud系列(5)---Hystrix 容错
最近在工作,本来没有什么心情写Blog的。但是没有面试也没有什么事情可以干,所以继续写吧~ Hystrix 是作为熔断的技术,什么叫熔断呢?SpringCloud的各个微服务之间是采用通过网络调用的,网络充满各种不稳定性,所以非常容易出现雪崩效应,为什么叫雪崩,当A调用了B微服务,B微服务又调用了C微服务,C微服务无法相应,C和B就会一直拉着链接等待超时。只要你访问并发量够大,很快的连接线程池原创 2017-07-19 20:32:08 · 607 阅读 · 0 评论 -
SpringCloud系列(4)---Feign 声明式REST调用
一、使用FeignFeign 提供声明式REST调用。一开始我们还在懊恼,dubbo都已经提供了配置式的服务调用了,为什么SpringCloud没有相应的解决方案?有SpringCloud提供了Feign声明式事务,使用Feign有个非常大的好处就是,只要你属性SpringMVC的annotation配置,Feign就没有什么学习成本。事不宜迟,我们首先将Feign整合到我们的微服务当中:原创 2017-07-14 16:01:07 · 4672 阅读 · 0 评论 -
SpringCloud系列(3)---Netfilx-Ribbon
在上一篇笔记当中,已经成功使用了服务注册和发现。但是所有微服务还是处于单点的状态,我们也应该对微服务进行负载均衡,这是相当有必要的。SpringCloud 提供了Ribbon负载均衡器。它可以有助于控制HTTP和TCP客户端的访问行为。为Ribbon配置服务提供者地址后,Ribbon就可以基于负载均衡算法进行负载均衡。Ribbon默认提供了很多种负载均衡算法,轮询、随机等。Ribbon也可以使用自原创 2017-07-14 14:59:29 · 637 阅读 · 0 评论 -
SpringCloud系列(2)---Netfilx-Eureka
上一篇笔记写到的两个问题,Netfilx-Eureka和Ribbo会给我们一一解决。如果有看过dubbo 应该知道zookeeper,Eureka的角色就是zookeeper。Eureka和Zookeeper主要都是作为微服务的注册和发现。Eureka和Zookeeper不一样的是,Zookeeper是作为一个单独的应用程序,而Eureka是直接嵌套在SpringCloud当中的。所以 E原创 2017-07-14 14:13:46 · 4185 阅读 · 0 评论 -
SpringCloud系列(1)---初试微服务
微服务之前在写SpringBoot的笔记时,就有提及到SpringCloud。SpringCloud提供了微服务的开箱即用。微服务近年来非常火,到处都在说微服务。笔者也对微服务相当感兴趣,因为笔者在校期间(N年前)曾经和很多同学聊过,如果所有的应用并不是单体的,而是通过很多系统提供API这会变成怎么样,当时我就觉得这样能够做到分布式服务。因为服务是分离的,我们可以针对每一个不同的服务,原创 2017-07-13 14:49:16 · 1189 阅读 · 0 评论 -
SpringBoot系列(7)---SpringBoot-Cache(EhCache)
SpringBoot提供数据缓存的功能,相信非常多人已经用过cache了。因为数据库的IO瓶颈应该大家也吃过不少亏了,所以一般情况下我们都会引入非常多的缓存策略,例如引入redis,引入hibernate的二级缓存等等。SpringBoot在annotation的层面给我们实现了cache,当然这也是得益于Spring的AOP。所有的缓存配置只是在annotation层面配置,完全没有侵入到我原创 2017-07-12 12:40:43 · 15317 阅读 · 2 评论 -
SpringBoot系列(5)---SpringBoot-Web和SpringBoot基础
笔者所参考的书籍是SpringBoot实战,其理论性说得不多,内容上也不是非常详细。但是说到的内容也足够平时使用了,以下就是我根据SpringBoot实战学到的一些东西,希望分享给大家,并成为我以后回忆这门技术的笔记。开始SpringBoot之前,我建议大家还是从Spring官网上按照自己的需要下载一个基础包,https://start.spring.io 。在这个笔记当中只需要用到web 和原创 2017-07-10 20:46:23 · 26740 阅读 · 2 评论 -
SpringBoot系列(4)---SpringMVC测试用例
虽然SpringMVC的测试用例我也没有怎么用,但是以防以后我会用到还是写一些笔记比较好。使用SpringMVC的测试,需要添加Spring-test MAVEN依赖如下:Spring-test: org.springframework spring-test ${spring.version}Junit4: junit j原创 2017-07-07 17:19:21 · 1208 阅读 · 0 评论 -
SpringBoot系列(3)---无配置文件SpringMVC
之前我在写SpringMVC花了很多篇幅,所以很多关于SpringMVC的很多知识点可以参考我以前的笔记。Servlet3.0以上可以不使用web.xml进行配置,而是实现Spring提供的WebApplicationInitializer接口进行相关的Web配置。当然我们的web服务器也需要时tomcat7.x以上版本。现在我们首先看看我们这个实验环境的maven pom文件:x原创 2017-07-07 16:24:11 · 4471 阅读 · 5 评论 -
SpringBoot系列(2)---无配置文件配置基础2
上一篇文章的传送门:SpringBoot系列(1)---无配置文件配置基础1一、Spring Aware 其实我在写Spring的博客已经用过了SpringAware ,当时使用的是BeanFactoryAware。其实Aware主要为我们提供获得Spring容器信息和服务的接口,让我们可以在bean中获得很多Spring 提供的服务。当然其实直接使用ApplicatonContext已经原创 2017-07-06 15:29:54 · 681 阅读 · 0 评论 -
SpringBoot系列(1)---无配置文件配置基础1
今天开始写关于SpringBoot的笔记,当然这个笔记也是主要给我自己看的。如果有其他开发者也在看我写的笔记的话,提醒一下 SpringBoot的笔记是建基于你已经熟悉使用Spring的前提地下去看的,当然我也会尽可能去重温一下Spring的东西。关于SpringBoot 这个技术其实近段时间随着SpringCloud越来越火(所谓的微服务)SpringBoot也随着火起来了。其实Spring原创 2017-07-05 21:34:10 · 1846 阅读 · 0 评论 -
SpringMVC 异常处理HandlerExceptionResolver 笔记(八)
SpringMVC提供4个异常处理解析器的实现 DefaultHandlerExceptionResolver SimpleMappingExceptionResolver AnnotationMethodHandlerExceptionResolver ResponseStatusExceptionResolver SpringMVC默认就装配了DefaultHandlerException原创 2017-05-27 11:26:05 · 1913 阅读 · 0 评论 -
SpringMVC 静态资源&拦截器(interceptor and static resource) 笔记(七)
SpringMVC会在dispatchServlet拦截请求,所有在我们配置的时候,如果将所有请求都拦截了,连同静态资源也会拦截。有两种方式对静态资源进行访问:1、配置default-servlet-handler,SpringMVC上下文中定义一个DefaultServletHttpRequestHandler,它会检查DispatchServlet的URL。然后如果发现是静态资源,就由原创 2017-05-26 17:20:28 · 1128 阅读 · 0 评论 -
SpringMVC 之Resolver视图解析器笔记(六)
Spring所支持的Resolver 非常多,但是我们最为常用的还是 InternalResourceViewResolver 。常规就是贴出一下InternalResourceViewResolver的常用配置:class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix=原创 2017-05-26 15:48:42 · 6155 阅读 · 0 评论 -
SpringMVC 之validator验证笔记(五)
SpringMVC支持的数据校验是JSR303的标准,通过在bean的属性上打上annotation @NotNull @Max等进行验证。JSR303提供有很多annotation借口,而SpringMVC对于这些验证是使用hibernate的实现,所以我们需要添加hibernate的一个validator包: org.hibernate hibernate-valid原创 2017-05-24 16:54:23 · 11951 阅读 · 0 评论 -
SpringMVC 之conversionSerivce笔记(四)
ConversionSerivce 最重点的目的是将http的请求参数以什么形式进行类型转换,简单来说HTTP请求都是以String的方式进行传输的,但是我们是入参却是多姿多彩的数据类型,所以SpringMVC是通过ConversionSerivce进行参数的绑定转换的。其实定义相应的converter的思想非常简单,首先要知道converter是处理什么类型转什么类型的,其次就是做实际的转型原创 2017-05-24 15:13:03 · 4024 阅读 · 0 评论 -
SpringMVC 之模型数据笔记(三)
SpringMVC 处理数据模型还是比较简单,概念都比较一致最经典的就是ModelAndView,以下就是SpringMVC所提供的数据模型:1、ModelAndView 作为请求处理方法的返回类型,在该对象中可以添加相应属性到数据模型当中2、@ModelAttribute: 方法入参注解后,入参会自动放置到数据模型当中。3、Map 和 Model :入参为org.springfra原创 2017-05-24 14:26:57 · 338 阅读 · 0 评论 -
SpringMVC之HttpMessageConverter&RestTemplate笔记(二)
HttpMessageConverter 是一个对请求信息进行直接转换的一个接口,就是说不通过resolver直接将对象直接响应并进行转换,而且HttpMessageConverter接口也可以对请求进行对象的直接转换。有兴趣的同学可以细心研究其接口的方法并去实现自己的MessageConverter,但是Spring所提供的HttpMessageConverter已经足够强大。以下就列出以下Sp原创 2017-05-24 11:03:09 · 4946 阅读 · 0 评论 -
SpringMVC 基础笔记(一)
SpringMVC 处理模型:1、所有request请求,如果需要交由SpringMVC处理,必须在DispatcherServlet对请求进行处理2、所有请求根据请求的信息,通过handlerMapping进行获得相关的Handler映射。3、根据handler的映射信息,获得handler然后通过handlerAdapter对handler进行统一封装代用。3、然后根据hand原创 2017-05-22 12:17:40 · 358 阅读 · 0 评论 -
SpringJDBC
SpringJDBC是对原生JDBC的一个封装,它不是一个ORM框架,但是对于一些小项目来说,它的所提供的功能就已经卓卓有余了,而且对于一些比价复杂的SQL 原声的JDBC还是有它一定的优势,所以今天我就将SpringJDBC的知识写一下。首先Spring为各种持久化技术提供模板类,这样做有两点,第一点方面操作,第二点你让hibernate的session和connection等这些线程不安全原创 2017-05-06 10:43:59 · 530 阅读 · 0 评论 -
Spring AOP 之 Schema配置切面
这篇文章是基于Spring AOP 之 Aspect文章的一个延伸,如果不熟悉如何使用AspectJ annotation去配置切面的话 建议先去看《Spring AOP 之 Aspect》 下面我们就使用一个比较简单的例子介绍如何使用spring配置文件去配置切面:定义Aspect类,但是我们不标记任何AspectJ的annotation:public class Aspec原创 2017-05-03 17:46:12 · 439 阅读 · 0 评论 -
Spring AOP 之 Aspect
之前我用了很多篇幅去介绍AOP的,现在我们使用一个最为常用的AOP使用方式,使用基于AspectJ的表达式进行定义切面,我们采用两种方式一种是通过annotation的另外一种就是通过XML进行配置的方式,在AspectJ中是使用annotation的方式进行使用的,所以我们首先会介绍一下如何去使用annotation去完成我们的代理功能。在我们使用@AspectJ切面的前提是,我们在原创 2017-05-02 13:56:35 · 947 阅读 · 0 评论 -
SpringAOP之切点和切面的深入理解
在看这篇文章之前需要首先理解 Spring AOP 增强的知识,如果你想先了解增强的知识可以移步到 我另外一篇博客《Spring动态代理之详细DEBUG日志模式》里面有关于增强的知识 如果除了增强还有 关于CGlib 和 Proxy 代理的知识不太理解可以再移步到 《动态代理之详细DEBUG日志模式》好了,目前是建基于你都明白 动态代理 和 Spring 增强的基础上进行对Spring 中原创 2017-04-27 15:30:45 · 16322 阅读 · 0 评论 -
Spring动态代理之详细DEBUG日志模式
在我上一篇文章已经讨论过了,关于利用JDK 中的 Proxy 和 CGlib 创建虚拟子类的方式进行动态代理,Spring ProxyFactory 整合了两者还做了一堆Advice接口方便我们去做增强。有以下增强接口MethodBeforeAdvice,AfterReturningAdvice,ThrowsAdvice 后面还有一会再说/** * Created by yanz原创 2017-04-26 16:16:03 · 3294 阅读 · 0 评论 -
动态代理之详细DEBUG日志模式
动态代理应该有很多人都清楚了,但是比较少人还记得怎样去实现动态代理,当然我们不是去使用springAOP去实现动态代理,而是使用JDK中的proxy和CGLib中的enhancer去实现。首先说明一下我们需要实现一个怎么样的功能,我目前需要实现的是一个详细的service层方法调用LOG,一般我们需要手动去打印例如传入什么参数了,那个方法被调用了,方法的耗时怎么样等等这些信息,这些在开发过程当原创 2017-04-26 14:08:39 · 3441 阅读 · 0 评论 -
Spring Bean的生命周期监听
关于Spring Bean的生命周期监听如下:public class User implements BeanFactoryAware,BeanNameAware,InitializingBean,DisposableBean { private BeanFactory factory; private String username; private Str原创 2017-04-26 11:13:13 · 907 阅读 · 0 评论