![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring框架
文章平均质量分 62
戴着假发的程序员
一个被程序夺走部分头发的程序员
展开
-
使用SSM实现一个简单的CRUD
写在前面的话 SSM框架整合开发会大幅度的提高我们的开发效率。我这里准备写一套SSM整合之后实现的单表的CRUD的案例,希望给刚刚学习SSM框架的小伙伴一些帮助。 也欢迎给位大神给出指点 _。tips:后面有源码下载地址。欧耶!直接开打吧你需要准备的武器学习过Spring,SpringMVC和MyBatis框架会整合SSM框架,不会的可以参考我的这一篇文章:https://juejin.cn/post/7068889782637559816要有一份对技术不断追求的心要热爱我的民族原创 2022-03-10 13:16:19 · 2270 阅读 · 1 评论 -
纯注解整合SSM框架
说在前面的话SSM:Spring+SpringMVC+MyBatis。 SSM框架组合已经是现在最热门的后端框架组合了。本篇我要说的就是使用纯注解整合这三大框架。当然了SpringMVC本身就是spring的一部分。也谈不上整合。所以SSM有时我叫SM。(其实不用在意叫法,好听就行)。 当然了我们都知道现在有SpringBoot可以轻松完成这些框架整合配置。所以这篇文章是给学习中的学子们准备的,已经熟练使用SpringBoot的大佬请绕行。tips:后面有源码下载地址。嗨!直接开打吧你需原创 2022-02-26 13:54:41 · 3731 阅读 · 2 评论 -
Spring应用手册-BeanPostProcessor接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员欢迎关注BeanPostProcessor接口 spring应用手册(第五部分) BeanPostProcessor称之为bean的后置处理器,在spring容器初始化时就大量的使用了这个接口的对象。先看看源码:public interface BeanPostProcessor { //bean初始化方法调用前被调用原创 2020-11-28 11:47:20 · 222 阅读 · 1 评论 -
Spring应用手册-BeanFactoryPostProcessor接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员欢迎关注BeanFactoryPostProcessor接口 spring应用手册(第五部分) BeanFactoryPostProcessor是bean工厂的bean属性处理容器,说通俗一些就是可以管理我们的bean工厂内所有的beandefinition(未实例化)数据,可以随心所欲的修改属性。先看看源码:package org.原创 2020-11-28 11:44:57 · 157 阅读 · 0 评论 -
Spring应用手册-FactoryBean接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员欢迎关注FactoryBean接口 spring应用手册(第五部分) FactoryBean是一个工厂Bean,可以生成某一个类型Bean实例,它最大的一个作用是:可以让我们自定义Bean的创建过程。BeanFactory是Spring容器中的一个基本类也是很重要的一个类,在BeanFactory中可以创建和管理Spring容器中的Bea原创 2020-11-28 11:42:06 · 154 阅读 · 0 评论 -
Spring应用手册-AliasRegistry接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员欢迎关注AliasRegistry接口 spring应用手册(第五部分) AliasRegistry接口主要是对springBean的别名进行管理的顶级接口,主要是对别名的增删功能。看看源码:public interface AliasRegistry { //对指定的名称注册别名 void registerAlias原创 2020-11-28 11:39:50 · 220 阅读 · 0 评论 -
Spring应用手册-ImportSelector接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员欢迎关注ImportSelector接口 spring应用手册(第五部分) ImportSelector接口往往是用于导入配置类。ImportSelector接口和@Import注解的使用在上一章节中已经解释过,这里就直接使用了。 我们重点讲解ImportSelector接口。ImportSelector接口有很多实现类,往往用于注册原创 2020-11-28 11:37:48 · 226 阅读 · 1 评论 -
Spring应用手册-ImportBeanDefinitionRegistrar接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员加粗样式 欢迎关注ImportBeanDefinitionRegistrar接口 spring应用手册(第五部分) ImportBeanDefinitionRegistrar接口提供了一个动态注入bean的方法,所以我们可以通过实现这个接口,然后自己手动注入bean。spring内部的bean的注入大部分都是使用这个套路。当然这个接口的原创 2020-11-28 11:34:59 · 1945 阅读 · 2 评论 -
Spring应用手册-DisposableBean接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注DisposableBean接口 spring应用手册(第五部分) DisposableBean接口和InitializingBean接口一样,为bean提供了释放资源方法的方式,它只包括destroy方法,凡是继承该接口的类,在bean被销毁之前都会执行该方法。这里要注意这里的destory和我们配置的destory-met原创 2020-11-28 11:32:01 · 5865 阅读 · 0 评论 -
Spring应用手册-InitializingBean接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注InitializingBean接口 spring应用手册(第五部分) InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法。这里要注意的,InitializingBean的afterProperties原创 2020-11-28 11:29:38 · 135 阅读 · 1 评论 -
Spring应用手册-BeanDefinition接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注BeanDefinition接口 spring应用手册(第五部分) 要了解BeanDefinition接口,你必须了解springBean的加载流程。springBean加载流程:①spring会加载所有符合要求的class(就是我们配置或者注解的类)。②解析这些类相关信息③根据解析的信息生成注册信息。这里的注册信息就是原创 2020-11-03 08:52:18 · 146 阅读 · 0 评论 -
Spring应用手册-Aware接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注Aware接口 spring应用手册(第五部分) Aware翻译过来是感知,意识到,获取到等等。在spring中有很多Aware接口,实现这些接口的Bean可以“感知”到对应的对象,当然其实是spring帮我们注入的。我们使用BeanNameAware接口来举例子,spring中所有的Aware接口信息的罗列参看后面的列表。B原创 2020-11-03 08:50:36 · 155 阅读 · 0 评论 -
Spring应用手册-ResourceLoader接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注ResourceLoader接口 spring应用手册(第五部分) 上一章节,我们解释了Resource接口。现在我们来看看ResourceLoader。 Spring框架为了更方便的获取资源,尽量弱化程序员对各个Resource接口实现类的感知与分辨,降低学习与使用成本,定义了另一个接口,就是:ResourceLoader接原创 2020-11-03 08:48:31 · 787 阅读 · 1 评论 -
Spring应用手册-Resource接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注Resource接口 spring应用手册(第五部分) Spring中整合了获取资源的工具,就是使用Resource接口。此接口是Spring为了统一读取诸如本地文件、classpath项目路径下的文件、url互联网上的文件等不同类型渠道的资源,封装隐藏如打开流、关闭流、报错处理等大量重复模板代码,而专程设计提供的接口类。看看原创 2020-11-03 08:46:34 · 368 阅读 · 0 评论 -
Spring应用手册-Beafactory接口
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注Beafactory接口 spring应用手册(第五部分) spring是一个IOC容器,Beanfactory就提供了IOC容器的基本规范。在这个基础上,Spring还提供了符合这个IoC容器接口的一系列容器的实现供开发人员使用。我们来看看BeanFactory的源码:public interface BeanFactor原创 2020-11-03 08:43:36 · 174 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(15)-AOP-XML-advisor方式-多通知执行顺序
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-advisor方式-多通知执行顺序 spring应用手册(第四部分) 在Advisor方式中我们也会遇到多个通知顺序问题,在这里spring提供的解决方案是:我们可以让我们通知类实现接口Ordered,通过实现其中的方法getOrder方法来指定通知的执行顺序,order越小的优先级越高。当没有指定Order时,原创 2020-10-30 17:27:30 · 197 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(14)-AOP-XML-advisor-方式环绕通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-advisor-方式环绕通知 spring应用手册(第四部分) advisor的环绕通知,我们的通知类需要实现接口:MethodInterceptor,源码如下:package org.aopalliance.intercept;@java.lang.FunctionalInterfacepublic i原创 2020-10-30 17:25:41 · 185 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(13)-AOP-XML-advisor方式-异常通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-advisor方式-异常通知 spring应用手册(第四部分) 在Advisor中也有异常通知,异常通知需要实现接口:org.springframework.aop.ThrowsAdvice我们观察org.springframework.aop.ThrowsAdvice的源代码:package org.spr原创 2020-10-30 17:23:54 · 132 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(12)-AOP-XML-advisor方式-后置通知和最终通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-advisor方式-后置通知和最终通知 spring应用手册(第四部分) 这里说明一下为什么后置通知和最终通知一起说呢,因为在后置通知接口继承了最终通知,并且在最终通知接口中本身就没有任何方法。我们来看看:最终通知的接口:package org.springframework.aop;public int原创 2020-10-30 17:21:03 · 455 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(11)-AOP-XML-advisor方式配置-前置通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-advisor方式配置-前置通知 spring应用手册(第四部分) springAOP的配置除过我们上面解释的aspect方式之外,还有一个非常常用的方式就是aop:advisoraop:aspect 主要是定义一个切面(切面包含的通知和切入点);aop:advisor 主要定义一个通知器 ,其实通知器本身也原创 2020-10-30 17:18:55 · 302 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(10)-AOP-XML-多个通知的执行顺序
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-多个通知的执行顺序 spring应用手册(第四部分) 有时我们可能在我们的业务上会增加多个相同类型的切面。这时就会有一个先后顺序问题。那么spring如何解决顺序问题呢?注解方式下Aspect中的方法默认是按照自然顺序排序的,我们可以在Aspect类上使用@Order指定顺序,在XML配置方式中是按照配置的先后原创 2020-10-28 14:20:02 · 299 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(9)-AOP-XML-环绕通知发布
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-环绕通知发布 spring应用手册(第四部分) 所谓环绕通知就是在目标方法的前后可以通知增强,正因为这样的情况,所以环绕通知可以阻止方法的执行,或者修改方法的返回值。环绕通知也可以传入一个参数ProceedingJoinPoint,ProceedingJoinPoint 是Joinpoint的一个子类,增强了一原创 2020-10-28 14:17:53 · 125 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(8)-AOP-XML-最终通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-最终通知 spring应用手册(第四部分) 所谓最终通知就是在方法完全执行结束之后在执行的通知,最终通知和后置通知的区别在于,无论业务方法是否出现异常中断,最终通知都会执行,和finally代码块的效果一致。案例:我们继续让业务方法抛出异常中断程序:/** * @author 戴着假发的程序员 * @c原创 2020-10-28 14:10:57 · 182 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(7)-AOP-XML-异常通知发布
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-异常通知发布 spring应用手册(第四部分) 所谓异常通知也很好理解,就是程序出现异常并且没有处理的情况下就执行异常通知,当然我们也可以在异常通知指明处理异常的类型。案例:我们在业务方法中抛出异常,并且不做处理:/** * @author 戴着假发的程序员 * @company http://www.原创 2020-10-28 14:08:48 · 89 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(6)-AOP-XML-后置通知发布
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-后置通知发布 spring应用手册(第四部分) 所谓后置通知就是在目标方法执行结束之后进行业务增强。我们可以在后置通知的增强方法中传入JoinPoint和业务方法的返回值。当然也可以什么都不传。看案例:在Aspect类中添加一个后置通知的方法:/** * @author 戴着假发的程序员 * @com原创 2020-10-28 14:06:45 · 119 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(5)-AOP-XML-前置通知发布
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-前置通知发布 spring应用手册(第四部分) 这里说明一点,JoinPoint类在注解方式中已经介绍过,这里不再做介绍。前置通知的发布Hellowrold中已经写过。这里再介绍以下参数:我们可以在前置通知的业务方法中添加JoinPoint类型的参数,同样可以添加我们指定类型的参数:案例:Aspect类原创 2020-10-20 08:43:10 · 97 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(4)-AOP-XML-pointcut配置
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-pointcut配置 spring应用手册(第四部分) 在这里提前说明一下,切入点的表达式配置在注解方式中已经做了详细讲解,在注解的方式我们可以使用内联的方式进行切入点的配置,也可以使用@pointcut进行切入点声明,方便重复使用。在XML配置中同样可以使用内联的方式进行配置:例如:这个方式就是我们原创 2020-10-20 08:38:25 · 407 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(3)-AOP-XML-的expose-proxy和proxy-target-class
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML-的expose-proxy和proxy-target-class spring应用手册(第四部分) expose-proxy是用来配置是否暴露代理bean的。在注解方式中已经解释过这个属性。这里稍微说一下。如果有下面的情况:在业务类内部的方法printMessage中调用formatMessage方法,原创 2020-10-20 08:35:47 · 440 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(2)-Hellowrold程序解析
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注Hellowrold程序解析 spring应用手册(第四部分) 业务类非常简单,这里不做赘述。[1]Aspect类配置中的Aspect类和注解中的Aspect类完全一致,只是没有任何注解而已。就是一个普通的javaBean。在其中声明一个普通的方法,作为通知的方法,当然我们不需要在乎方法名是什么。我们也可以在方法中传入jo原创 2020-10-19 08:48:15 · 166 阅读 · 0 评论 -
Spring应用手册-AOP(XML)-(1)-AOP-XML配置Helloworld
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注AOP-XML配置Helloworld spring应用手册(第四部分) 关于SprngAOP的概念和思想我们在springAOP(Annotation)章节已经全部解释过了,所以本章节主要讲解SpringAOP的XML配置方式。不再赘述概念。好的,让我们开始搭建springAOP的XML-Hellowrold程序吧。如果我原创 2020-10-19 08:38:45 · 119 阅读 · 0 评论 -
spring应用手册-AOP(注解)-(27)-EnableAspectJAutoProxy的exposeProxy属性
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注EnableAspectJAutoProxy的exposeProxy属性 spring应用手册(第三部分) 前面我们以及解释完了AOP的所有配置和使用方式。现在我们来看看下面的案例:我们准备一个业务类:在业务类中我们有两个方法showMessage和formartMsg。我们再showMessage中调用formartMsg原创 2020-10-18 16:31:21 · 832 阅读 · 1 评论 -
spring应用手册-AOP(注解)-(26)-Aspect-实例化模型
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注Aspect-实例化模型 spring应用手册(第三部分) 我们查看@Aspect注解的源代码:package org.aspectj.lang.annotation;@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)原创 2020-10-18 16:28:22 · 346 阅读 · 2 评论 -
spring应用手册-AOP(注解)-(25)-切面发布-通知顺序-@Order
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注切面发布-通知顺序-@Order spring应用手册(第三部分) 有时我们可能在我们的业务上会增加多个相同类型的切面。这时就会有一个先后顺序问题。那么spring如何解决顺序问题呢?在使用注解方式的环境下,我们可以通过@Order注解给切面排序,当然在没有@Order注解的情况下,多个切面本身是无顺序的(也就是按照默认顺序执原创 2020-10-18 16:25:42 · 905 阅读 · 2 评论 -
spring应用手册-AOP(注解)-(24)-切面发布-环绕通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注切面发布-环绕通知 spring应用手册(第三部分) 所谓环绕通知就是在目标方法的前后可以通知增强,正因为这样的情况,所以环绕通知可以阻止方法的执行,或者修改方法的返回值。环绕通知也可以传入一个参数ProceedingJoinPoint,ProceedingJoinPoint 是Joinpoint的一个子类,增强了一些方法,我原创 2020-10-18 16:23:10 · 167 阅读 · 2 评论 -
spring应用手册-AOP(注解)-(23)-切面发布-异常通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注切面发布-异常通知 spring应用手册(第三部分) 异常通知就专门用于处理异常的,一旦被增强方法出现异常就会进入异常通知的增强业务。同样的异常通知也可以传入JoinPoint,这里作用和前置通知的一致,就不在赘述。异常通知除过可以传入JoinPoint外,还可以传入一个异常对象,用于封装异常信息,而且这个参数的类型还可以限制可原创 2020-10-18 16:21:34 · 196 阅读 · 0 评论 -
spring应用手册-AOP(注解)-(22)-切面发布-最终通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注切面发布-最终通知 spring应用手册(第三部分) 最终通知也是在被增强方法完全执行结束之后执行,最终通知和后置通知的区别在于即使程序中途出现异常,中断之前也会先执行最终通知。就类似于finallly代码块。最终通知同样可以传入JoinPoint,作用和前置通知的一致,这里就不赘述了。看案例:我们在Aspect中添加最终通原创 2020-10-18 16:19:48 · 288 阅读 · 1 评论 -
spring应用手册-AOP(注解)-(21)-切面发布-后置通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注切面发布-后置通知 spring应用手册(第三部分) 所谓后置通知,就是在方法执行结束之后增强。这里的执行结束是彻底结束,如果方法没有返回值,则正常执行结束,如果有返回值则表示返回结束之后。 如果方法在执行过程中出现异常中断,或者进入其他逻辑,那么后置通知就不会再执行。我们来看案例,我们依然使用上面的Service类,这里我就原创 2020-10-18 16:18:04 · 279 阅读 · 0 评论 -
spring应用手册-AOP(注解)-(20)-切面发布-前置通知
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注切面发布-前置通知 spring应用手册(第三部分) 前置通知的意思是在目标方法执行之前执行增强程序。前面的例子我们也写过潜质通知。注意,前置通知仅仅就是前置增强,前置通知并不能改变目标方法的执行。更不能阻止目标方法的执行。现在我们来仔细分析以下前置通知的案例:我们准备一个业务类InfoService,其中有一个方法为s原创 2020-10-18 16:14:50 · 246 阅读 · 0 评论 -
spring应用手册-AOP(注解)-(19)-切面发布-JoinPoint类介绍
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注切面发布-JoinPoint类介绍 spring应用手册(第三部分) 任何通知方法都可以声明一个类型为org.aspectj.lang.JoinPoint的参数作为其第一个参数(请注意,需要使用 around 通知声明ProceedingJoinPoint类型的第一个参数,它是JoinPoint的子类).JoinPoint接口提原创 2020-10-18 16:12:00 · 125 阅读 · 0 评论 -
spring应用手册-AOP(注解)-(18)-@Pointcut的表达式-逻辑运算
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注@Pointcut的表达式-逻辑运算 spring应用手册(第三部分) 在@Pointcut中spring还提供了逻辑运算,主要就是逻辑非 “!”逻辑与"&&" 逻辑或"||"。这个非常好理解,直接看官方的案例就可以立刻理解:以下 example 显示了三个切入点表达式:@Pointcut("executio原创 2020-10-17 17:08:38 · 311 阅读 · 0 评论