spring
文章平均质量分 78
深山猿
不断进化的深山猿
展开
-
@Qualifier多个类实现接口时,bean的实例化
我们想要将MyBean1注入到MyComponent类中,因此我们使用@Qualifier("bean1")注解来指定要注入的bean。当有多个bean都被标记为@Primary时,@Qualifier注解可以用来指定要注入的特定bean。需要注意的是,@Qualifier注解只有在与@Autowired注解一起使用时才有意义。这时就需要使用@Qualifier注解来指定要注入的bean。总之,@Qualifier注解是Spring中非常有用的一个注解,它可以帮助我们解决同一类型的多个bean注入的问题。原创 2023-07-24 11:04:22 · 504 阅读 · 0 评论 -
Spring项目中的拦截器和注册器
它们都是用于对请求进行处理的组件,可以对请求进行预处理和后处理,实现了请求的统一处理和异常处理等功能。总的来说,Spring中的过滤器是基于Servlet规范实现的,通过过滤器可以对请求和响应进行过滤和处理,实现了请求的统一处理和异常处理等功能。总的来说,Spring中的拦截器是通过AOP实现的,通过拦截器可以对请求进行预处理和后处理,实现了请求的统一处理和异常处理等功能。总的来说,过滤器可以对请求和响应进行过滤和处理,实现了请求的统一处理和异常处理等功能,提高了系统的可靠性和安全性。原创 2023-07-24 10:46:23 · 387 阅读 · 0 评论 -
springBoot中jetty tomcat undertow对比与undertow线程池配置
work-threads 中的线程会执行计算任务,并将结果返回给 server.undertow.io-threads 中的线程。为了提高服务器的性能,我们可以使用 Undertow 服务器,并设置两个线程池:server.undertow.io-threads 和 work-threads。构建中小型的 Web 应用程序,可以选择 Tomcat。这里io-threads和worker-threads是两个线程池的大小,其中io-threads用于处理非阻塞的任务,所以对应的线程个数一般等于cpu核数。原创 2023-04-04 17:05:42 · 2377 阅读 · 0 评论 -
springmvc注解@RestController @RequestMapping @GetMapping @PostMapping
1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面@Controllerpublic class FileUploadController {//跳转到上传文件的页面@RequestMapping(value="/gouploadimg", method = RequestMethod.GET)public String goUploadImg() {//跳转到 templates 目录下的 uploadimg原创 2020-12-11 14:05:56 · 2472 阅读 · 0 评论 -
springboot 中的注解
类上的注解:@Slf4j不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以直接使用log.warn("oo");需要:1 idea需要安装Lombok插件 2 pom中引入lombok参考:https://www.jianshu.com/p/6e137ee836a1@EnableAsync使用多线程,往往是创建Thread,或者是实现runnable接口,用到线程池的时候还需要创建Execu..原创 2020-10-30 10:56:42 · 322 阅读 · 0 评论 -
springboot maven父子项目搭建
背景最近接触了一个新项目,已经接触了好几个月,但是一直忙于写代码,没有仔细分析过项目结构,今天开始分析下,包括搭建类似的项目,介绍应用到的一些新的技术点。原创 2020-09-27 14:49:01 · 1080 阅读 · 0 评论 -
idea创建包含多个springboot module的maven project
1 创建maven projectfile-> new -> project 左侧选maven,不勾选右侧,如下图然后,点击next,填入name和GroupId属性,如下图:点击finish则完成创建。删除src文件夹,在pom文件中添加<packaging>pom</packaging>...原创 2020-09-21 09:37:13 · 808 阅读 · 0 评论 -
静态代理 动态代理 cglib原理区分 设计模式
本文主要从三个方面介绍代理模式,什么是代理模式,提供了什么好处;代理模式的三种实现方式;三种代理的区别首先简单说明下为什么需要代理模式:为其他对象提供一种代理以控制对这个对象的访问,可以隔离客户端和委托类的中介。我们还可以借助代理来在增加一些功能,而不需要修改原有代码。重点是代理模式的三种实现方式:先给出简单的接口和实现类:public interface IHello { ...原创 2018-10-16 20:31:34 · 9564 阅读 · 0 评论 -
spring单例与线程安全,并行调用服务加速响应
问题:ssm框架,spring中controller和service都是单例的,那是怎么保证线程安全呢?通过threadLocal保证,实际一个实例,tomcat中线程池执行任务时,获取单例的副本,每个线程的执行都是操作单例的副本那既然有单例的副本,此时还是单例的吗?????https://www.cnblogs.com/-zhuang/articles/10607877.html所...原创 2019-11-20 21:43:09 · 350 阅读 · 0 评论 -
aop三个坑:失效、注入对象为空、方法固定返回null
问题:DataMigrateService中两个方法firstMonitor,getResultDataMigrateService被配置了aop,但是执行发现,如果实在另一个类中分别调用firstMonitor,getResult,两个方法都活经过aop;但是如果job中调用firstMonitor,firstMonitor再调用getResult发现,getResult不经过aop如下...原创 2019-10-17 16:58:08 · 5678 阅读 · 1 评论 -
redis+环绕aop 实现定时任务在集群中仅执行一次
场景说明:web服务原本仅有一台机器,现在因为用户量增加准备扩充为2台机器,那项目中的定时任务要求仅能单次在一个机器上执行。解决:准备采用redis实现分布式锁功能,定时任务执行前先查看执行方法对应的key在redis中是否存在,如果不存在,则把key放入(相当于加锁),指定过期时间(防止方法执行失败导致的死锁),方法执行完成后移除key(释放锁);如果key已经存在,则直接跳过,方法不执行。...原创 2019-10-10 11:17:49 · 634 阅读 · 0 评论 -
获取httpServletRequet的方式
获取httpServletRequet的方式,1 controller中接收,然后透传2 通过RequestContextHolder获取HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();...原创 2019-08-02 16:10:28 · 308 阅读 · 0 评论 -
sprinmvc之requestMapping reponseBody和requestbody和requestParam
spring-requestMapping使用 -https://blog.csdn.net/j080624/article/details/55193269requestMapping-注解识别与请求路径的保存 -https://blog.csdn.net/j080624/article/details/56278461/requestMapping-根据请求路径获取对应处理方法 -ht...原创 2019-07-09 11:12:17 · 248 阅读 · 0 评论 -
spring单例下循环依赖的处理,三级缓存
最近在看spring的源码,这里专门记录下spring对循环依赖的处理。简单介绍什么是循环依赖:有两个类A\B,A实例化的时候需要B的bean,B实例化的时候也需要A的bean,AB之间就是循环依赖。spring中,在非单例下,spring是不允许存在循环依赖的;下面主要看下spring对循环依赖是怎么处理的。Spring单例对象的初始化其实可以分为三步:第一步:实例化,createB...原创 2018-11-15 22:33:47 · 7692 阅读 · 0 评论 -
beanFactory和ApplicationContext的区别和关系
beanFactory和ApplicationContext的区别和关系:ApplicationContext建立在BeanFactory的基础之上,提供了更多面向应用的功能, 它提供了国际化支持和框架事件体系,但有下面几点不同:1)获取beanFactory和ApplicationContext方式不同BeanFactory beanFactory=new XmlBeanFactor...原创 2018-11-23 21:43:03 · 9214 阅读 · 0 评论 -
spring中bean的生命周期,及生命周期中的作用 和 作用域(单例 多例)
最近在看spring源码,所以总结下spring的生命周期和各个阶段的作用。spring的生命周期概括起来主要如下:实例化 属性注入 ioc注入 实现了BeanNameAware 则执行setBeanName方法 实现了BeanFactoryAware 则执行 setBeanFactory方法,p125 实现了ApplicationContextAware 执行setApplic...原创 2018-11-23 22:39:31 · 9252 阅读 · 0 评论 -
Spring中Transactional注解的使用详解和实例
Spring中Transactional注解的使用: @Transactional(propagation=Propagation.REQUIRED,rollbackFor = Exception.class) 已经有事务则直接加入,没有事务则新建事务;遇到异常则回滚1)定义事物传播行为介绍: @Transactional(propagation=Propagation.REQ...原创 2018-12-12 11:13:54 · 12514 阅读 · 1 评论 -
多数据源的配置
场景如下:现在使用的是spring+mybatis+mysql 数据源只有一个,mysql的一个库;现在因为其中一个表dau_baseinfo的数据量太大,千万级别。页面查询实在太慢,所以准备把dau_baseinfo表迁移到clickhouse,此时就需要再引入一个数据源,即clickhouse对应的数据源下面开始配置多数据源第一步:创建一个DynamicDataSource的类,继...原创 2018-10-23 20:14:06 · 11810 阅读 · 0 评论 -
spring aop切面的使用 前置 环绕和异常
什么是aop,为什么需要aopAOP:aspect oriented parogramming面向切面编程,是对所有对象或者是某类对象编程,核心:在不增加代码的基础上还增加新功能1就是为了方便,看一个国外很有名的大师说,编程的人都是“懒人”,因为他把自己做的事情都让程序做了。用了aop能让你少写很多代码,这点就够充分了吧2就是为了更清晰的逻辑,可以让你的业务逻辑去关注自己本身的业务,而不去...原创 2019-05-17 11:47:24 · 3251 阅读 · 0 评论 -
Spring中Model、ModelMap、ModelAndView ModelAttribute的使用
Spring中Model、ModelMap、ModelAndView ModelAttribute理解和具体使用总结SpringMVC在调用方法前会创建一个隐含的数据模型,作为模型数据的存储容器, 成为”隐含模型”。也就是说在每一次的前后台请求的时候会随带这一个背包,不管你用没有,这个背包确实是存在的,用来盛放我们请求交互传递的值Model是一个接口, 其实现类为Extended...原创 2019-07-09 09:50:09 · 711 阅读 · 0 评论 -
SpringMVC-@RequestMapping的参数和用法
版权声明:本文为博主原创文章,...转载 2019-07-09 10:58:28 · 446 阅读 · 0 评论 -
requestMapping-源码解析-注解识别与请求路径的保存
为了降低文章篇幅,使得文章更目标化,简洁化,我们就不例举各种@RequestMapping的用法...转载 2019-07-09 11:03:47 · 2088 阅读 · 3 评论 -
requestMapping-根据请求路径获取对应处理方法
上一篇文章中我们了解了Spring如何处理@RequestMapping注解,并将请求映射信息保存到系统中以处理客户端发...转载 2019-07-09 11:07:58 · 9587 阅读 · 0 评论 -
mac idea git gradle导入spring源码
前提条件:gradle,git都已经安装完成。gradle的安装可以参考:https://blog.csdn.net/h2604396739/article/details/83794822git参考;https://www.cnblogs.com/renhui/p/6882597.html下载:通过git clone 命令下载。git clone https://github....原创 2018-11-06 22:11:10 · 9521 阅读 · 0 评论