
spring
文章平均质量分 78
HD243608836
这个作者很懒,什么都没留下…
展开
-
Spring 循环依赖(图例+源码分析)
什么是循环依赖呢?如下图所示,有两个或两个以上的对象之间引用,也就是A对象中有属性B 引用了B对象,B对象中有属性C 引用了C对象,而C对象中有属性A 引用了A对象。构成一个环状结构,这就是循环依赖。对于普通的java对象而言,对象之间的循环依赖可以通过set方式设置之间的引用关系。而SpringBean中的循环依赖就复杂的很多,单例Bean的创建过程是交给Spring管理的,并不是简简单单的通过set就可以解决的。那么Spring是如何解决的循环依赖的呢?转载 2024-04-12 03:03:39 · 138 阅读 · 0 评论 -
什么是ssm框架?
SSM其实是JAVAEE的一个开发套件:Springmvc(有段时间是Struts)、Spring和mybatis(以前叫ibatis)web层(springmvc),service层(spring)和DAO层(mybatis)为什么这三样会怎么的流行呢?我的习惯是从解决问题的角度回答问题,这三样其实对应的是javaEE开发的三个问题。1. Springspring的出现是因为Rod Johnson的一本书《Expert o-ne-on-One J2EE Design and Dev转载 2022-01-15 13:21:53 · 656 阅读 · 0 评论 -
SpringMVC三大组件之——简单理解HandlerAdapter的作用
写在最前面 HandlerAdapter字面上的意思就是处理适配器,它的作用用一句话概括就是调用具体的方法对用户发来的请求来进行处理。当handlerMapping获取到执行请求的controller时,DispatcherServlte会根据controller对应的controller类型来调用相应的HandlerAdapter来进行处理。1.HandlerAdapter的注册DispatcherServlte会根据配置文件信息注册HandlerAdapter,如果在配置文件中...转载 2022-01-14 19:19:40 · 973 阅读 · 0 评论 -
【惊人】Spring5 AOP 默认使用Cglib? 从现象到源码深度分析
Spring5 AOP 默认使用 Cglib 了?我第一次听到这个说法是在一个微信群里:真的假的?查阅文档刚看到这个说法的时候,我是保持怀疑态度的。大家都知道 Spring5 之前的版本 AOP 在默认情况下是使用 JDK 动态代理的,那是不是 Spring5 版本真的做了修改呢?于是我打开 Spring Framework 5.x 文档,再次确认了一下:文档地址:Core Technologies简单翻译一下。Spring AOP 默认使用 JDK 动态代理,如果对象没有实转载 2021-12-30 22:45:58 · 946 阅读 · 2 评论 -
Spring 生命周期——对线面试官
面试官:今天要不来聊聊Spring对Bean的生命周期管理?候选者:嗯,没问题的。候选者:很早之前我就看过源码,但Spring源码的实现类都太长了候选者:我也记不得很清楚某些实现类的名字,要不我大概来说下流程?面试官:没事,你开始吧候选者:首先要知道的是候选者:普通Java对象和Spring所管理的Bean实例化的过程是有些区别的候选者:在普通Java环境下创建对象简要的步骤可以分为:候选者:1):java源码被编译为被编译为class文件候选者:2):等到类需要被初始化转载 2021-12-29 18:00:45 · 218 阅读 · 0 评论 -
Spring 是如何解决循环依赖的?
如何解决循环依赖问题?那Spring到底是如何解决的setter方法依赖注入引起的循环依赖问题呢?请看下图(其实主要是通过两个缓存来解决的):Spring三大缓存介绍Spring中有三个缓存,用于存储单例的Bean实例,这三个缓存是彼此互斥的,不会针对同一个Bean的实例同时存储。推荐:Java进阶视频资源如果调用getBean,则需要从三个缓存中依次获取指定的Bean实例。读取顺序依次是一级缓存-->二级缓存-->三级缓存一级缓存:Map<String,转载 2021-12-29 15:57:42 · 157 阅读 · 0 评论 -
springboot中com.fasterxml.jackson.annotation注解@JsonIgnoreProperties
一、jackson的mavern依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</version></dependency> 二、使用的背景 springboot项目中定义了很多.转载 2021-12-19 19:33:52 · 11740 阅读 · 0 评论 -
Spring JPA不用@Repository--笔记
网上找了好久,都没找到具体为什么jpa不用@Repository的原理,根据查到的资料推测应该要去解析spring本质源码才可以彻底理解,但实在没时间了,只能暂时这样了。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Spring通过扩展预定义Repository接口之一来识别存储库(不是实现接口)。@NoRepositoryBean注释的目的是防止Spring将该特定接口本身视为存储库。Repository接口:仅仅是一个标识,表明任何继承它的均为仓库接转载 2021-12-19 16:11:28 · 708 阅读 · 0 评论 -
Spring 与 Mybatis 中的 @Repository 与 @Mapper与@Mapperscan
@Repository、@Service、@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean。如果使用@Repository则需要使用@MapperScan("xxx.xxx.xxx.mapper")进行扫描,然后生成Dao层的Bean才能被注入到Service层中。@Mapper通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。相当于@Mapper=@Repository+@MapperScan使用注解的方式开发Dao转载 2021-12-19 13:23:18 · 1446 阅读 · 0 评论 -
MyBatis Spring 集成,mapper接口@Repository有时候却不用写的原因(MyBatis Spring 集成源码解析)
其实就是IOC容器的“xml方式与注解方式”的结合。mybatis jar包中,偷偷的把dao层类放入xml加载注入到IOC容器中了转载自,原文格式清晰:(181条消息) MyBatis Spring 集成,mapper接口@repository有时候却不用写的原因(MyBatis Spring 集成源码解析)_大灰狼的专栏-优快云博客_mybatisrepository接口~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~转载 2021-12-19 02:25:06 · 1091 阅读 · 0 评论 -
spring源码系列(三)——beanDefinition(1)【讲的很透】
转载自:spring源码系列(三)——beanDefinition(1)_java_lyvee的专栏-优快云博客_beandefinition转载 2021-12-15 19:22:33 · 180 阅读 · 0 评论 -
@Autowired用法详解(明白了原理!好文章!!)
@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。通过 @Autowired的使用来消除 set ,get方法。在使用@Autowired之前,我们对一个bean配置起属性时,是这用用的<property name="属性名" value=" 属性值"/>通过这种方式来,配置比较繁琐,而且代码比较多。在Spring 2.5 引入了 @Autowired 注释一、下面用案例来具体说明UserRepository.javapa..转载 2021-04-14 10:30:48 · 13880 阅读 · 0 评论 -
理解Spring循环引用(循环依赖)
转载自:https://blog.youkuaiyun.com/chen2526264/article/details/80673598一、介绍循环引用,也可以叫做循环依赖,就是A类依赖了B类,B类又依赖A类,比如下面这种情况:class A { private B b;public B getB() { return b;}public void setB(B b) { this.b =...转载 2019-12-14 22:54:59 · 451 阅读 · 0 评论 -
Spring Security - 获取当前登录用户的详细信息
Spring Security - 获取当前登录用户的详细信息在Spring框架里面,可以通过以下几种方式获取到当前登录用户的详细信...转载 2019-08-16 22:56:38 · 2825 阅读 · 0 评论 -
深入理解Spring中的Lookup(方法注入)——最好用的@Lookup标签实例
前言本文主要给大家介绍了关于Spring中Lookup(方法注入)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:在使用Spring时,可能会遇到这种情况:一个单例的Bean依赖另一个非单例的Bean。如果简单的使用自动装配来注入依赖,就可能会出现一些问题,如下所示:单例的Class A 1 2 3 4 5 6...转载 2019-08-13 00:08:41 · 2490 阅读 · 0 评论 -
spring的@Lookup注解实现单例中调用多例
当我们需要在一个单例bean1中引入另外一个bean2,但是希望被调用的这个bean2是非单例的时候可以使用lookup注解来实现首先给出错误的写法:@Component@Scope("prototype")public class PrototypeBean { public void say() { System.out.println("say some...转载 2019-08-12 21:19:58 · 775 阅读 · 0 评论 -
SpringBoot事务注解详解
@Transactionalspring 事务注解1.简单开启事务管理(Springboot中已经默认自动启动该注解了,所以不需要手动显式添加)@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />2.事务注解详解默认遇到throw new RuntimeExcept...转载 2019-08-21 15:31:28 · 521 阅读 · 0 评论 -
只读事务(@Transactional(readOnly = true))的一些概念
念:从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据)应用场合:如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性;如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询SQL必须保证整体的读一致性,否则,在前条SQL查询之后,...转载 2019-08-21 14:20:24 · 376 阅读 · 0 评论 -
SpringBoot中使用JdbcTemplate中queryForList遇到的坑
在Spring Boot 中使用Spring的JdbcTemplate操纵数据一文中其实已经详细的讲解了JdbcTemplate的使用用法,但是还是想将坑单拎出来讲下。首先看下这个方法:乍一看,我想传个泛型T(实际代码执行中,这个T可以是我自定义的一个Bean),然后就能返回个List<T>,也即泛型的集合(纯ORM思想啊!殊不知又挖了个大坑~)于是乎,出现下面代码:...转载 2019-08-20 14:08:59 · 8627 阅读 · 1 评论 -
史上最简单的Spring Security总结——授权篇
转载自:https://www.jianshu.com/p/cba56572fec5Spring Security是一款强大的安全认证服务框架,它的原理就是在访问我们的系统前加了一系列的过滤器,可以称为过滤器链。它的两大核心就是认证和授权,本文主要描述的授权篇,认证篇请看https://www.jianshu.com/p/24c6a65c3913。那废话不多说,我们接着认证篇继续开车吧(新手司...转载 2019-08-10 16:05:46 · 603 阅读 · 0 评论 -
史上最简单的Spring Security总结——认证篇
转载自:https://www.jianshu.com/p/24c6a65c3913Spring Security是一款强大的安全认证服务框架,它的原理就是在访问我们的系统前加了一系列的过滤器,可以称为过滤器链。它的两大核心就是认证和授权,本文主要描述的是认证篇,授权篇请看https://www.jianshu.com/p/cba56572fec5。那废话不多说,我用一个例子介绍怎么去用,然后...转载 2019-08-10 16:04:05 · 495 阅读 · 0 评论 -
“Spring全家桶”所有知识与实例——看这个就足够了!(申精)
我见过的最好的“spring全家桶”所有知识与实例(全都可以运行)的总结!(包含Spring Boot、Spring Boot & Shiro、Spring Boot &Security 、& Spring Security OAuth2、Spring Cloud、Spring Boot && Dubbo教程)必须置顶了!必须置顶了!必须置...转载 2019-08-06 23:57:14 · 1755 阅读 · 0 评论 -
java操作mongodb指定集合及索引建立spring boot(组合索引,复合索引)
package com.paic.aims.farmer.farmerinfo.dto;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import org.springframework.data.mongodb.core.index.CompoundIndex;...转载 2019-09-25 20:19:28 · 5965 阅读 · 0 评论 -
spring secuity拦截匹配URL权限(RequestMatcher接口详解)
原文格式清晰,转载自:https://www.jianshu.com/p/4f9ee6007213我们知道spring secuity是控制URL的访问权限的,那么spring secuity是怎样拦截匹配URL,我们先看一个接口RequestMatcher匹配HttpServletRequest的简单策略接口RequestMatcher,其下定义了matches方法,如果返回是tru...转载 2019-08-06 22:45:10 · 18789 阅读 · 0 评论 -
Pointcut注解表达式execution、@target、@annotation、@within等
简介在Spring AOP概述中我们重点注意的是AOP的整体流程和Advice,简化了一些其他的东西,其中就有一些对灵活应用Spring AOP很重要的知识点,例如Pointcut表达式,下面就介绍一下Spring AOP的Pointcut表达式。如果你对Pointcut表达式的作用还不是很了解,可以先看一下Spring AOP概述,也可以先了解一下匹配规则,后面会有一些具体的例子来帮助理...转载 2019-08-31 17:19:16 · 9324 阅读 · 0 评论 -
restTemplete在测试时发送请求报错org.springframework.web.client.HttpClientErrorException:400 null
问题:我写了测试FilterDataController。但是在执行测试期间我有以下错误。当我手动发送GET请求时,我收到正确的JSON。org.springframework.web.client.HttpClientErrorException: 400 null at org.springframework.web.client.DefaultResponseErrorH...转载 2019-09-18 21:17:44 · 5447 阅读 · 1 评论 -
spring事务声明:"声明式事务"和"编程式事务"介绍
编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。声明式事务:管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务转载 2017-09-11 20:02:18 · 455 阅读 · 0 评论 -
springboot中方法调用链路追踪——Zipkin快速开始
Zipkin是什么Zipkin分布式跟踪系统;它可以帮助收集时间数据,解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;Zipkin的设计是基于谷歌的Google Dapper论文。每个应用程序向Zipkin报告定时数据,Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求...转载 2019-10-11 17:24:38 · 2327 阅读 · 0 评论 -
将aop(面向切面编程)函数,打包成jar包并拦截另一项目中的函数
1.写拦截函数(com.example.serverdemob.controller.*.test1(..)为所要拦截的另一项目中的函数)2.打包成jar包点击ok,然后在build工具栏里选择build artifacter,选择对应的jar包编译3.在另一个项目里(所要拦截的函数所在项目)...转载 2019-09-27 17:20:42 · 2748 阅读 · 0 评论 -
Spring配置AOP切入点execution星号详解
例(最常用的方式):execution (* com.sample.service..*. *(..))整个表达式可以分为五个部分:1、execution()::表达式主体。2、第一个*号:表示返回类型, *号表示所有的类型。3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service包、子孙包下所有类的方法。4...转载 2019-09-27 16:01:58 · 707 阅读 · 0 评论 -
mongodb分页与优化
一、普通分页查询(find+skip+limit):Query query = new Query(Criteria.where("name").is(name).and("size").is(size).and("age").is(age)) .skip((page.getPageNum()-1)*page.getPageSize()) ...转载 2019-09-25 22:57:29 · 2166 阅读 · 1 评论 -
Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)(mongoTemplate与mongo命令对应关系)
转载自,原文格式清晰:[https://blog.youkuaiyun.com/congcong68/article/details/47183209](https://blog.youkuaiyun.com/congcong68/article/details/47183209) 一.简介 ...转载 2019-09-25 22:23:51 · 1131 阅读 · 0 评论 -
springAOP切入点表达式怎么排除某些方法
springAOP切入点表达式怎么排除某些方法@Pointcut("!execution(*aa.bb..*.set*(..))andexecution(*aa.bb..*.*(..))")如果是这种形式的方法执行了很多其他方法,比如init可以 把and换成 &&就可以解决了。@Pointcut("execution(*aa.bb.....转载 2019-09-25 17:15:11 · 10384 阅读 · 0 评论 -
SpringAOP中Aspectj拦截所有方法含有某个注解,并且排除某些包下的某些类的方法上也含有这个注解的方法
SpringAOP中Aspectj拦截所有方法含有某个注解,并且排除某些包下的某些类的方法上也含有这个注解的方法。即,限定只拦截指定包下所有的类。@Pointcut("@annotation(org.springframework.web.bind.annotation.GetMapping) && within(com.springboot.test..*)")...转载 2019-09-25 11:15:27 · 4884 阅读 · 0 评论 -
springAOP中Pointcut注解表达式@target、@annotation、@within、this、target、within等
至于最常见的execution表达式;由于网上一搜基本都是用的这个,这里就不在赘述了;这里将我知道的分享给大家;//@Around("@annotation(自定义注解)")//自定义注解标注在方法上的方法执行aop方法如:@Around("@annotation(org.springframework.transaction.annotation.Transactional)")//...转载 2019-09-25 10:15:25 · 5658 阅读 · 2 评论 -
springAOP中@within和@annotation的区别
@within和@annotation的区别:@within 对象级别@annotation 方法级别转载 2019-09-24 18:12:33 · 9705 阅读 · 0 评论 -
拜托!面试不要再问我Spring Cloud底层原理
毫无疑问,Spring Cloud 是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对 Spring Cloud 功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈 Spring Cloud 微服务架构的底层原理。实际上,Spring Cloud 是一个全家桶式的技术栈,它包含了很多组件。本文先从最核心的几...转载 2019-07-11 13:52:56 · 240 阅读 · 0 评论 -
Spring RestTemplate中几种常见的请求方式
转载自:https://blog.youkuaiyun.com/u012702547/article/details/77917939/https://segmentfault.com/a/1190000011093597在Spring Cloud中服务的发现与消费一文中,当我们从服务消费端去调用服务提供者的服务的时候,使用了一个很好用的对象,叫做RestTemplate,当时我们只使用了Res...转载 2019-07-10 16:39:56 · 259 阅读 · 0 评论 -
基于SpringBoot开发一个Restful服务,实现增删改查功能
前言在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便、快捷。但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练。不过在看了很多关于SpringBoot的介绍之后,并没有想象中的那么难,于是开始准备学习SpringBoot。 在闲暇之余的时候,看了下SpringBoot实战以及一些大神关于SpringBoot的...转载 2018-12-03 18:34:59 · 317 阅读 · 0 评论 -
@ResponseBody 和 @RequestBody 的作用
先提一嘴 @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地址。代码:@RequestMapping(value = "/test")//类级别映射,可以没有,一般用于减少书写量public class myController { //方法级别映射,必须有,那么这个方法的访问...转载 2018-11-29 16:43:17 · 321 阅读 · 0 评论