
Spring
与spring有关的博客
章 鱼
alert("hey!")
展开
-
【Spring】实现自定义事件的发布与处理
先自定义一个事件:public class NotifyEvent extends ApplicationEvent { private String email; private String content; public NotifyEvent(Object source) { super(source); } public NotifyEvent(Object source, String email, String content) {原创 2021-04-18 10:37:48 · 540 阅读 · 0 评论 -
【Spring】Bean生命周期以及应用场景(注解版)
前言理清Spring容器管理Bean的过程有助于我们更好地根据需求制定更合理的设计方案,提升系统扩展性和执行效率。正文下面通过简单的示例来理清Bean在Spring容器中的生命周期。我们从整体到细节,首先是启动容器加载Bean,这是一个整体的过程。/** * 测试 Spring Bean 生命周期 * @author zyj */public class LifeCycleTes...原创 2020-03-06 15:48:44 · 1700 阅读 · 0 评论 -
【问题总结】由于Spring事务使用不当引起的数据库死锁
现象这次版本发完生产不久,主管就在群里通知了数据库有性能问题,产生了死锁。这条SQL一直占用了CPU,导致系统其它服务都出现性能问题。背景这是一条更新人员索引日志表的SQL,这张表的作用就是用来标记哪些人员的数据发生变化。涉及这条SQL的模块有后台任务和操作人员数据的功能。后台任务从这张表获取需要更新的人员,将数据同步到solr。操作人员数据的功能需要在这张表中标记该人员为待更新...原创 2020-02-19 16:36:50 · 4843 阅读 · 0 评论 -
Spring之AOP(基于注解)
目标类public class MathCalculator { public int div(int i,int j){ return i/j; }}切面类@Aspectpublic class LogAspects { //抽取公共的切入点表达式 //1、本类引用 //2、其他的切面引用 @Pointcut("execution(public int com....转载 2018-09-22 10:48:54 · 261 阅读 · 0 评论 -
【Spring】自动装配
自动装配Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值1)、@Autowired:自动注入:默认优先按照类型去容器中找对应的组件:applicationContext.getBean(BookDao.class),找到就赋值如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找applicationContext.getBean(“bookD...转载 2018-09-22 10:00:36 · 1268 阅读 · 0 评论 -
拦截方式之Filter、Interceptor 、Aspect
一、Filter这是java规范的一个过滤器,会拦截请求。在SpringBoot中一般有两种配置方式。这种过滤器拦截并不知道你用的是哪一个Controller处理也不知道你用哪一个方法处理。通过@Component加入容器@Componentpublic class TimerFilter implements Filter { @Override public ...转载 2018-09-11 20:27:46 · 587 阅读 · 0 评论 -
Spring Boot之@Transactional
事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务有两种方式:配置文件(xml)@Transactional 注解本文将着重介绍基于 @Transactional 注解的事务管理。...转载 2018-09-11 17:34:34 · 686 阅读 · 0 评论 -
Spring之使用@Value为静态变量赋值
使用@Value为静态变量赋值@Value("${integraion.url}")private static String integraionUrl;说明:integraion.url为Spring Boot配置文件application.properties中配置的常量。但是最后没有拿到值,查了下资料发现@Value注解为静态变量赋值是只需在set方法上使用@Value即...转载 2018-08-26 22:19:15 · 2383 阅读 · 2 评论 -
Spring之注入静态变量的三种方式
Spring静态注入的三种方式:(说明:MongoFileOperationUtil是自己封装的一个Mongodb文件读写工具类,里面需要依赖AdvancedDatastore对象实例,dsForRW用来获取Mongodb数据源)在Spring Framework里,我们不能@Autowired一个静态变量,使之成为一个spring bean,例如下面这种方式:@Autowiredp...转载 2018-08-26 22:06:07 · 2628 阅读 · 0 评论 -
Spring解决跨域问题(@CrossOrigin)
一、关于跨域介绍在前后分离的架构下,跨域问题难免会遇见比如,站点 http://domain-a.com 的某 HTML 页面通过 的 src 请求 http://domain-b.com/image.jpg。网络上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。 例如,XMLHttpRequest和Fetch API...转载 2018-08-09 00:26:27 · 3602 阅读 · 0 评论 -
Spring之Bean的生命周期
问到Spring中Bean的生命周期,起始也就是考察一下对Spring是否熟悉,工作中很少用到其中的内容,在这里简单整理了下。PS:可以借鉴Servlet的生命周期,实例化、初始init、接收请求service、销毁destroy;Spring上下文中的Bean也类似,【Spring上下文的生命周期】实例化一个Bean,也就是我们通常说的new按照Spring上下文对实例化的Bean进...转载 2018-07-16 14:49:33 · 205 阅读 · 0 评论 -
Spring与SpringMVC之父子容器
父子容器 以上的图解由以下配置实现 spring扫描存放mapper以及service的包,而springmvc只扫描存放controller的包理论上讲,两者都可以扫描所有的包,但是这样做并不合适,浪费资源情况1:spring管理mapper,springmvc管理controller、service,那spring配置的事务以及切面就不起作用了。情况2:spring管理ma...原创 2018-06-27 11:25:39 · 275 阅读 · 0 评论 -
Spring框架学习三:面向切面编程AOP
一、AOP介绍什么是AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之...原创 2018-05-21 13:54:35 · 332 阅读 · 0 评论 -
Spring框架学习二:控制反转与依赖注入
概述里提到,Spring中的两个概念:控制反转(IoC)和依赖注入(DI),现在来描述下这两个概念:Ioc—Inversion of Control,即“控制反转” IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了IoC容器后,把创建...原创 2018-05-20 11:42:27 · 342 阅读 · 0 评论 -
Spring框架学习一:概述
一、什么是springSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。 框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为...原创 2018-05-20 10:58:56 · 474 阅读 · 0 评论