
spring
文章平均质量分 81
to_real
这个作者很懒,什么都没留下…
展开
-
一文搞懂BeanFactory和FactoryBean区别
BeanFactory这个其实是所有Spring Bean的容器根接口,给Spring 的容器定义一套规范,给IOC容器提供了一套完整的规范,比如我们常用到的getBean方法等The root interface for accessing a Spring bean container. This is the basic client view of a bean container;定义方法:getBean(String name): Spring容器中获取对应Bean对...原创 2022-04-25 23:02:35 · 571 阅读 · 0 评论 -
Spring隔离级别和传播机制
事务特征⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务原创 2022-03-30 20:53:33 · 168 阅读 · 0 评论 -
spring中bean的生命周期
1、spring中bean的生命周期(1)概念在spring框架中,所有的bean对象都有生命周期,就是指bean的创建、初始化、服务、销毁的一个过程。(2)bean的生命周期bean的定义在spring中通常是通过配置文档的方式来定义Bean的,在一个配置文件中可以定义多个Beanbean的初始化默认在IOC容器加载的时候实例化对象(ApplicationContext是,Beanfactory只有在调用getBean的时候才进行实例化):生命周期(初始化、销毁方法、BeanPos原创 2022-03-30 14:16:04 · 3889 阅读 · 0 评论 -
Spring中如Service有多个实现类,它怎么知道该注入哪个ServiceImpl类
方法一:Controller中注入service的时候使用@Autowired自动注入,@Qualifier("beanId")来指定注入哪一个。方法二:Controller中注入service的时候使用@Resource(type = 类名.class)来指定注入哪一个。方法三: 每个service的impl都可以指定名称(使用@Service(“名称”)) Controller中注入service的时候使用名称来指定注入哪一个(使用@Resource(name="名称"))。..原创 2021-05-10 17:18:34 · 776 阅读 · 0 评论 -
Spring中涉及的设计模式总结
Spring中涉及的设计模式总结1.简单工厂(非23种设计模式中的一种)实现方式:BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。实现原理:bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。原创 2021-02-20 11:21:18 · 111 阅读 · 0 评论 -
springmvc适配器模式---HandlerAdapter
适配器模式就是你有一个类接口,但是这个接口不太符合你的预期,如果要用他就需要在他的源码上进行一些修改,这时你可以做一个适配器,在不修改原来这个接口源码的情况下,在适配器上对这个接口进行运用,使得适配器符合你的规范。适配器模式(Adapter Pattern),把一个类的接口变换成客户端所期待的另一种接口, Adapter模式使原本因接口不匹配(或者不兼容)而无法在一起工作的两个类能够在一起工作。又称为转换器模式、变压器模式、包装(Wrapper)器模式(把已有的一些类包装起来,使之能有满足需要的接口)。原创 2021-02-19 11:13:23 · 1086 阅读 · 0 评论 -
Spring注解@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。2、不同点(1)@Autowired@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.ann原创 2020-12-14 20:45:19 · 123 阅读 · 0 评论 -
将多个JSON字段映射到单个Java字段
简介本文中,教大家如何使用Jackson和Gson将不同的JSON字段映射到单个Java字段中。Maven依赖为了使用Jackson和Gson库,我们需要在POM中添加以下依赖项:<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</versi原创 2020-12-14 11:43:57 · 1248 阅读 · 0 评论 -
spring中实现基于注解实现动态的接口限流防刷
本文将介绍在spring项目中自定义注解,借助redis实现接口的限流自定义注解类import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 基于注解的请求限制 */@Target({ElementType.TYPE,原创 2020-10-26 17:11:57 · 376 阅读 · 0 评论 -
spring aop中pointcut表达式
spring aop中pointcut表达式完整版本文主要介绍spring aop中9种切入点表达式的写法execute within this target args @target @within @annotation @args0. 示例代码git地址https://gitee.com/likun_557/spring-aop-demo1.execute表达式拦截任意公共方法execution(public * *(..))拦截以set开头的任意方法原创 2020-10-22 13:05:05 · 251 阅读 · 0 评论 -
Spring Boot实战:拦截器与过滤器
一、拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器。这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的。在分析两者的区别之前,我们先理解一下AOP的概念,AOP不是一种具体的技术,而是一种编程思想。在面向对象编程的过程中,我们很容易通过继承、多态来解决纵向扩展。但是对于横向的功能,比如,在所有的service方法中开启事务,或者统一记录日志等功能,面向对象的是无法解决的。所以AOP——面向切面编程其实是面向对象编程思想的一个补充。而我们今天讲的过滤器和拦截.原创 2020-09-15 11:06:27 · 99 阅读 · 0 评论 -
在spring-boot工程中添加spring mvc拦截器 HandlerInterceptorAdapter
1. 认识拦截器Spring MVC的拦截器(Interceptor)不是Filter,同样可以实现请求的预处理、后处理。使用拦截器仅需要两个步骤:实现拦截器 注册拦截器1.1 实现拦截器实现拦截器可以自定义实现HandlerInterceptor接口,也可以通过继承HandlerInterceptorAdapter类,后者是前者的实现类。下面是拦截器的一个实现的例子,目的是判断用户是否登录。如果preHandle方法return true,则继续后续处理。public class L原创 2020-09-15 10:03:51 · 436 阅读 · 0 评论 -
@ControllerAdvice
@ControllerAdvice ,很多初学者可能都没有听说过这个注解,实际上,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面的功能:全局异常处理 全局数据绑定 全局数据预处理灵活使用这三个功能,可以帮助我们简化很多工作,需要注意的是,这是 SpringMVC 提供的功能,在 Spring Boot 中可以直接使用,下面分别来看。全局异常处理使用 @ControllerAdvice 实现全局异常处理,只需要定义类原创 2020-09-10 11:16:36 · 320 阅读 · 0 评论 -
@Data注解 与 lombok
@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;引入lombok要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。在maven中添加依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lo原创 2020-08-12 14:56:14 · 249 阅读 · 0 评论 -
@PathVariable注解使用
@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值语法:@PathVariable("xxx")通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“) @RequestMapping(value=”user/{id}/{name}”)请求路径:http://localhost:8080/hello/show5/1/james测试环境:环境:jdk1.8 Tomcat原创 2020-08-11 15:51:30 · 429 阅读 · 0 评论 -
@RequestBody的使用
基础知识介绍: @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。注:一个请求,只有一个RequestBody;一个请求,可以有多个Req...原创 2020-08-11 13:56:30 · 305 阅读 · 0 评论 -
@Controller和@RestController的区别
@RestController注解相当于@ResponseBody + @Controller合在一起的作用1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。例如:本来应该到success.jsp页面的,则其显示success.2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器Int原创 2020-08-11 12:19:55 · 162 阅读 · 0 评论