spring
文章平均质量分 50
ai_xiangjuan
这个作者很懒,什么都没留下…
展开
-
在spring 中使用自定义注解
在spring中使用自定义注解原创 2017-10-24 23:08:49 · 529 阅读 · 0 评论 -
spring 事务管理
spring 事务接口spring的事务属于逻辑事务。不是物理事务。 Spring事务管理涉及的接口的联系如下: 事务管理器Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。 Spring事务管理器的接口是: org.springframework.transacti...原创 2018-03-25 16:04:36 · 170 阅读 · 0 评论 -
Spring Aop
介绍在软件开发中,散布于应用中多处的功能被称为横切关注点(crosscutting concern)。通常来讲,这些横切关注点从概念上是与应用的业务逻辑相分离的(但是往往会直接嵌入到应用的业务逻辑之中)。把这些横切关注点与业务逻辑相分离正是面向切面编程(AOP)所要解决的问题。如果被代理的目标对象实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对...原创 2018-03-25 23:05:55 · 222 阅读 · 0 评论 -
@ControllerAdvice @ExceptionHandler 全局处理 Controller 层异常
前言 通过@ControllerAdvice。我们可以将对于控制器的全局配置放置在同一个位置,注解了@ControllerAdvice的类的方法可以使用@ExceptionHandler,@InitBinder,@ModelAttribute注解到方法上,这对所有注解了@RequestMapping的控制器内的方法有效。@ExceptionHandler:用于全局处理控制器里面的异...原创 2018-03-26 13:02:55 · 1300 阅读 · 0 评论 -
JdkDynamicAopProxy 源码分析
JdkDynamicAopProxy 介绍此类是spring aop框架基于java jdk(java.lang.Proxy)代理的实现类。 JdkDynamicAopProxy实现了AopProxy接口及InvocationHandler接口final class JdkDynamicAopProxy implements AopProxy, InvocationHandler, ...原创 2018-04-14 23:17:24 · 641 阅读 · 0 评论 -
ProxyFactory 源码分析
介绍spring 提供的编程式aop实现,即通过 ProxyFactory类完成的。举例@Testpublic void testRemoveAdvisorByReference() { //被代理的对象 TestBean target = new TestBean(); //代理工厂 ProxyFactory pf = new ProxyFa...原创 2018-04-15 11:35:45 · 760 阅读 · 0 评论 -
spring InitializingBean 接口
介绍InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。与Init-method方法的区别实现InitializingBean接口与在配置文件中指定init-method有什么不同? 在spring初始化bean的时候,如果该bean是实现了Initi...原创 2018-04-06 21:24:36 · 148 阅读 · 0 评论 -
Spring ResponseBodyAdvice、RequestBodyAdvice接口
ResponseBodyAdvice主要作用是响应体写出之前做一些处理。@Order(1) @ControllerAdvice(basePackages = "com.github") public class MyResponseBodyAdvice implements ResponseBodyAdvice<Object> { @Override ...原创 2018-04-06 22:41:01 · 1063 阅读 · 0 评论 -
Spring HttpMessageConverter接口
介绍HttpMessageConverter 是 Spring3.0 新添加的一个接口,负责将请求信息转换为一个对象(类型为 T),将对象(类型为 T)输出为响应信息。 接口定义public interface HttpMessageConverter<T> { /** * Indicates whether the given class c...原创 2018-04-06 23:03:34 · 199 阅读 · 0 评论 -
Spring HandlerMethodReturnValueHandler接口
接口介绍HandlerMethodReturnValueHandler是RequestMappingHandlerAdapter用来处理完映射控制类,对方法返回的值进一步进行处理。接口定义/** * 策略模式接口:处理 Controller 方法返回值 */public interface HandlerMethodReturnValueHandler { /**...原创 2018-04-06 23:19:54 · 859 阅读 · 0 评论 -
Spring HandlerMethodArgumentResolver接口
介绍HandlerMethodArgumentResolver是用来为处理器解析参数的,主要用在HandlerMethod中,每个Resolver对应一种类型的参数,其实现类特别的多。接口定义supportsParameter 用于判断是否支持对某种参数的解析resolveArgument 将请求中的参数值解析为某种对象public interface HandlerM...原创 2018-04-07 12:42:14 · 262 阅读 · 0 评论 -
Spring Aop自动创建代理
1.介绍在Bean生命周期过长中调用BeanPostProcessor,将对象进行包装,生成代理对象。2.举例public class LogMethodInterceptor implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation...原创 2018-04-21 17:16:10 · 191 阅读 · 0 评论 -
Spring FactoryBean接口
如果一个bean实现FactoryBean,那么它就不是一个简单的bean,类似于java模式中的工厂模式,用于生产不同的Object。举例 public class OkHttpClientFactoryBean implements FactoryBean, DisposableBean { private int connectTimeout; private int readTim...原创 2018-10-20 12:31:14 · 404 阅读 · 0 评论 -
spring中的@InitBinder和WebBindingInitializer接口
介绍 @InitBinder用于在@Controller中标注于方法,表示为当前控制器注册一个属性编辑器或者其他,只对当前的Controller有效。 @InitBinder必须有一个参数WebDataBinder WebBindingInitializer WebBindingInitializer:实现WebBindingInitializer,重写initBinder...原创 2018-04-07 16:03:01 · 541 阅读 · 0 评论 -
Spring @RequestMapping注解实现
介绍使用@RequestMapping注解时,配置的信息最后都设置到了RequestMappingInfo。RequestMappingInfo封装了 PatternsRequestCondition,RequestMethodsRequestCondition,ParamsRequestCondition等,所以自己不干活,所有的活都是委托给具体的condition处理。@Requ...原创 2018-04-07 15:46:28 · 615 阅读 · 0 评论 -
spring 拦截器配置
spring boot拦截器自定义拦截器Interceptor定义 方法 说明 preHandle 在实际的Handle执行前执行 postHandle Handle执行后视图渲染前执行 afterCompletion Handle执行且视图渲染完成后执行Spring为方便使用实现了HandlerInterceptorAd...转载 2018-03-23 17:55:11 · 277 阅读 · 0 评论 -
spring容器事件
spring容器事件介绍原创 2017-12-30 21:13:28 · 195 阅读 · 0 评论 -
spring中使用外部属性文件
spring中使用外部属性文件原创 2017-12-30 23:13:49 · 259 阅读 · 0 评论 -
Spring 常用的类
Spring bean的生命周期BeanPostProcessor如果BeanFactory装配了BeanPostProcessor后置处理器。可以在bean初始化完成后或者初始化之前对bean进行重新处理。 如public Object postProcessAfterInitialization(Object obj, String beanName) throws BeansExcepti原创 2017-12-11 23:21:46 · 2428 阅读 · 0 评论 -
Spring @LookUp
需求当我们在一个bean中依赖其他的bean时,我们可以注入其他依赖的bean通过set()或者构造器方法。 这样调用get方法的时候返回在bean中注入的实例。但是如果我们希望在每次调用get方法的时候返回新的实例。下面有两种方法可以实现。方法一:把注入的bean设置成单例,每次在调用get()方法的时候,通过applicationContext.getBean();此方法需要依赖原创 2018-01-21 21:37:30 · 2319 阅读 · 1 评论 -
SpringBoot Endpoint
介绍SpringBoot的Endpoint主要是用来监控应用服务的运行状况,并集成在Mvc中提供查看接口。内置的Endpoint比如HealthEndpoint会监控dist和db的状况,MetricsEndpoint则会监控内存和gc的状况。Endpoint的接口如下,其中invoke()是主要的方法,用于返回监控的内容,isSensitive()用于权限控制。public in...原创 2018-03-07 13:02:22 · 3523 阅读 · 0 评论 -
spring 事务传播性
Required:必须有逻辑事务,否则新建一个事务,使用PROPAGATION_REQUIRED指定,表示如果当前存在一个逻辑事务,则加入该逻辑事务,否则将新建一个逻辑事务,如图所示; 在前边示例中就是使用的Required传播行为: 一、在调用userService对象的save方法时,此方法用的是Required传播行为且此时spring事务管理器发现还没开启逻辑事务,因此Spri...转载 2018-03-07 22:00:42 · 147 阅读 · 0 评论 -
Spring boot常用注解
@Configuration@Configuration 它就是JavaConfig形式的Spring Ioc容器的配置类 ,SpringBoot社区推荐使用基于JavaConfig的配置形式。一个标注了@Configuration的类 类似于 xml配置文件中的< beans>import org.springframework.context.annotation.Be...原创 2018-03-07 22:04:21 · 176 阅读 · 0 评论 -
spring aop类内部调用不拦截原因及解决方案
spring对应java web开发的同学来说,都不陌生,其中事务@Transactional在service层更是常常使用。aop类内部调用不拦截原因细心的同学也许早就发现当service中的某个没标注@Transactional的方法调用另一个标注了@Transactional的方法时,居然没开启事务。例如@Servicepublic class UserService {...转载 2018-03-07 22:46:49 · 1686 阅读 · 0 评论 -
动态管理配置文件扩展接口EnvironmentPostProcessor
介绍SpringBoot支持动态的读取文件,留下的扩展接口org.springframework.boot.env.EnvironmentPostProcessor。这个接口是spring包下的,使用这个进行配置文件的集中管理,而不需要每个项目都去配置配置文件。这种方法也是springboot框架留下的一个扩展 举例实现EnvironmentPostProcessor...原创 2018-03-18 11:29:37 · 308 阅读 · 0 评论 -
分布式追踪工具 Spring cloud sleuth
介绍spring cloud sleuth是用来解决分布式中服务的跟踪。span 和trace的图解如下: 实现:log实现在日志中打印traceId 通过ThreadLocal 、MDC进行实现。RestTemplate TraceId实现通过实现RestTemplate拦截器接口:ClientHttpRequestInterceptorprivate...原创 2018-03-18 22:46:55 · 717 阅读 · 0 评论 -
Spring Aware接口
spring 的bean实现Aware接口。可以自动织入BeanFactory等Spring容器对象。Spring Aware对象实现原理class ApplicationContextAwareProcessor implements BeanPostProcessor { private final ConfigurableApplicationContext applicationC...原创 2018-10-20 13:18:45 · 302 阅读 · 0 评论