![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 92
c.
这个作者很懒,什么都没留下…
展开
-
Spring Event 事件通知
文章目录Spring Event 事件通知观察者模式Spring Event事件处理基于继承`ApplicationEvent`的Event基于注解`@EventListener`的Event源代码Spring Event 事件通知观察者模式spring event的事件驱动模型是使用观察者模式进行解耦,所以我们在了解这个事件驱动模型之前,我们先来了解一下观察者模式这个设计模式。当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依原创 2020-12-30 11:04:12 · 502 阅读 · 1 评论 -
解决Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut
今天在整合Spring和Aspectj的时候报了如下的错误:五月 04, 2019 1:41:40 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh信息: Refreshing org.springframework.context.support.ClassPathXmlA...原创 2019-05-04 13:48:03 · 2964 阅读 · 1 评论 -
Spring整合AspectJ基于注解实现AOP
文章目录Spring整合AspectJ基于注解实现AOP替换bean替换AOP声明切面替换前置通知替换公共切入点替换后置替换环绕替换抛出异常AOP注解总结Spring整合AspectJ基于注解实现AOP我们把上一篇Spring整合AspectJ基于XML实现AOP进行改造成基于注解实现。首先是pom文件<?xml version="1.0" encoding="UTF-8"?>...原创 2019-05-04 13:35:05 · 1066 阅读 · 5 评论 -
Spring整合AspectJ基于XML实现AOP
文章目录Spring整合AspectJ实现AOP介绍切入点表达式AspectJ 通知类型基于XML整合AspectJ目标类切面类Spring配置前置通知后置通知环绕通知抛出异常最终通知Spring整合AspectJ实现AOP前面我们已经学习了Spring AOP。那我们为什么还需要学习AspectJ,因为AspectJ 更为简单,更加方便。但是在我们的开发中我们不太使用Spring自身的对AO...原创 2019-05-04 11:24:07 · 691 阅读 · 0 评论 -
Spring AOP编程的半自动和全自动编写代理
文章目录Spring AOP编程的半自动和全自动编写代理Spring编写代理:半自动AOP联盟通知类型环绕通知Spring编写代理:全自动Spring AOP编程的半自动和全自动编写代理Spring编写代理:半自动让spring 创建代理对象,从spring容器中手动的获取代理对象。注意:这里从Spring中获取到的是代理对象,而不是目标类对象AOP联盟通知类型AOP联盟为通知Ad...原创 2019-05-04 01:27:12 · 702 阅读 · 0 评论 -
AOP实现原理之CGLIB字节码增强
AOP实现原理之CGLIB字节码增强没有接口,只有实现类。采用字节码增强框架cglib,在运行时创建目标类的子类,从而对目标类进行增强。CGLIB字节码增强实现首先我们需要target目标类public class UserServiceImpl{ public void addUser() { System.out.println("addUser()...原创 2019-05-03 23:33:58 · 984 阅读 · 0 评论 -
AOP实现原理之JDK动态代理
JDK动态代理JDK动态代理是Spring AOP底层实现的方式之一。JDK动态代理 对“装饰者”设计模式 简化。使用前提:必须有接口。JDK动态代理实现首先我们需要有target目标类,也就是我们需要接口+实现类首先我们创建一个UserService的接口public interface UserService { public void addUser(); public ...原创 2019-05-03 16:33:19 · 548 阅读 · 0 评论 -
Spring AOP介绍
什么是AOP在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序...原创 2019-05-03 16:14:32 · 165 阅读 · 0 评论 -
Spring 基于注解装配Bean
文章目录Spring 基于注解的配置创建Bean依赖注入普通值注入引用值注入生命周期作用域Spring 基于注解的配置从 Spring 2.5 开始就可以使用注解来配置依赖注入。而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身。注解:就是一个类,使用@注解名称开发中:使用注解 取代 xml配置文件。创建Bean...原创 2019-05-03 00:10:32 · 3668 阅读 · 3 评论 -
Spring Beans 自动装配
文章目录Spring Beans 自动装配Spring 自动装配 `byName`Spring 自动装配 `byType`Spring 由构造函数自动装配Spring Beans 自动装配使用元素的 autowire 属性为一个 bean 定义指定自动装配模式。Spring 自动装配 byName这种模式由属性名称指定自动装配。Spring 容器看作 beans,在 XML 配置文件中 b...原创 2019-05-02 22:57:56 · 347 阅读 · 0 评论 -
Spring 基于XML的集合注入
Spring 基于XML的集合注入现在如果想传递多个值,如 Java Collection 类型 List、Set、Map 和 Properties,应该怎么做呢。为了处理这种情况,Spring 提供了四种类型的集合的配置元素,如下所示:配置<beans xmlns="http://www.springframework.org/schema/beans" xmln...原创 2019-05-01 23:42:42 · 481 阅读 · 0 评论 -
Spring SpEL表达式
Spring SpEL表达式对<property>进行统一编程,所有的内容都使用value<property name="" value="#{表达式}">#{123}、#{'jack'} : 数字、字符串#{beanId} :另一个bean引用#{beanId.propName} :操作数据#{beanId.toString()} :执行方法#{T(类)....原创 2019-05-01 23:12:39 · 212 阅读 · 0 评论 -
Spring P命令空间
Spring P命令空间对setter方法注入进行简化,替换<property name="属性名">,而是在<bean p:属性名="普通值" p:属性名-ref="引用值">p命名空间使用前提,必须添加命名空间配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www...原创 2019-05-01 23:05:22 · 1027 阅读 · 0 评论 -
Spring 基于XML的构造函数和setter方法的依赖注入
Spring 依赖注入Spring框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系。Spring 基于构造函数的依赖注入配置<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...原创 2019-05-01 21:16:37 · 1207 阅读 · 0 评论 -
Spring Bean 定义继承
文章目录Bean 定义继承Bean 定义继承代码Bean 定义继承Spring Bean 定义的继承与 Java 类的继承无关,但是继承的概念是一样的。你可以定义一个父 bean 的定义作为模板和其他子 bean 就可以从父 bean 中继承所需的配置。当你使用基于 XML 的配置元数据时,通过使用父属性,指定父 bean 作为该属性的值来表明子 bean 的定义。Bean 定义继承代码...原创 2019-05-01 20:32:14 · 308 阅读 · 0 评论 -
Spring Bean 后置处理器BeanPostProcessor
Spring Bean 后置处理器BeanPostProcessorSpring 提供一种机制,只要实现此接口BeanPostProcessor,并将实现类提供给spring容器,spring容器将自动执行,在初始化方法前执行before(),在初始化方法后执行after()可以配置多个 BeanPostProcessor 接口,通过设置 BeanPostProcessor 实现的 Order...原创 2019-05-01 20:21:44 · 1229 阅读 · 0 评论 -
Spring Bean 生命周期
文章目录Bean 的生命周期Bean初始化回调InitializingBeaninit-method 属性销毁回调DisposableBeandestroy-method 属性默认的初始化和销毁方法 default-init-method 和 default-destroy-method 属性Bean 的生命周期理解 Spring bean 的生命周期很容易。当一个 bean 被实例化时,它可...原创 2019-05-01 18:15:22 · 554 阅读 · 0 评论 -
Spring BeanFactory和ApplicationContext 容器
Spring IoC 容器Spring 提供了以下两种不同类型的容器。Spring BeanFactory 容器Spring ApplicationContext 容器Spring 的 BeanFactory 容器这是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持.在 Spring 中,有大量对 BeanFactory 接口的实现。其中,最常被使用的是 XmlBea...原创 2019-05-01 17:48:49 · 295 阅读 · 0 评论 -
java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.<init>(Unknown Source)
此类问题一般在 spring版本 与 jdk版本不匹配的情况下会出现。匹配规则:spring3 + java7spring4 + java8https://blog.csdn.net/long15273620606/article/details/80554448转载 2019-04-20 23:18:36 · 188 阅读 · 0 评论 -
Spring结合JPA设计通用的BaseDao实现完全的面向接口编程
这是我们团队小项目中设计的通用BaseDao:public interface BaseDao<T> { /** * 添加实体类 * @param t * @return */ public T add(T t); /** * 更新实体类 * @param t * @return...原创 2018-08-05 02:30:06 · 7047 阅读 · 4 评论 -
Spring和SpringMVC父子容器注解扫描引发的javax.persistence.TransactionRequiredException异常问题
做练习的时候出现了一个异常:javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process &#39;remove&#39; call org.spri...原创 2018-07-31 23:38:56 · 550 阅读 · 0 评论 -
Spring(IOC/AOP)注解学习
Spring的初始化顺序在spring的配置文件中配置bean,如下<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in...原创 2018-06-21 22:04:40 · 160 阅读 · 0 评论 -
【SSM分布式架构电商项目-31】使用Spring基于应用层实现读写分离
方案解决读写分离的方案有两种:应用层解决和中间件解决。应用层解决优点: 1、 多数据源切换方便,由程序自动完成; 2、 不需要引入中间件; 3、 理论上支持任何数据库; 缺点: 1、 由程序员完成,运维参与不到; 2、 不能做到动态增加数据源;中间件解决 优缺点:优点: 1、 源程序不需要做任何改动就可以实现读写分离; 2、 动态...原创 2018-05-16 17:33:29 · 455 阅读 · 0 评论 -
【SSM分布式架构电商项目-04】使用Spring4的泛型注入封装BaseService
每个service都几乎需要以下方法:1、 queryById 2、 queryAll 3、 queryOne 4、 queryListByWhere 5、 queryPageListByWhere 6、 save 7、 update 8、 deleteById 9、 deleteByIds 10、deleteByWhere在封装BaseService的...原创 2018-05-02 16:02:36 · 973 阅读 · 3 评论 -
Spring的Java配置方式
Spring的发展Spring1.x 时代在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置文件中切换。Spring2.x时代随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行申明和注入,大大的减少了xml配置文件,同时也大大简化了项目的开发。那么,问题来了,究竟是应该使原创 2018-01-02 17:46:59 · 1865 阅读 · 0 评论 -
SpringMVC+Hibernate+Spring的整合
创建web项目引入类库antlr-2.7.6.jar com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar com.springsource.javax.servlet.jsp.jstl-1.1.2.jar com.springsource.javax.validation-1.0.0.GA.jar com.springsource.net.sf.原创 2017-05-08 14:57:45 · 847 阅读 · 0 评论 -
Struts2+Mybatis+Spring的整合
Struts2+Mybatis+Spring的整合导包导入Struts2+Mybatis+Spring所需要的jar包 配置spring配置文件配置mybatis配置文件加入实体类和映射文件加入service层和dao层public interface IUserDao { public User selectUserById(String id); public List<User原创 2017-05-08 11:59:51 · 567 阅读 · 0 评论 -
mybatis与spring整合
mybatis与spring整合导包首先导入mybatis和spring所需要的jar包 spring配置文件配置spring配置文件 测试一下是否配置成功: 编写实体类Userpublic class User { private String id; private String userName; private String address; public原创 2017-05-07 15:45:50 · 427 阅读 · 0 评论 -
quartz整合Spring注入Service时空指针异常问题解决
利用Quartz可以实现定时任务,但在跟spring整合后,直接在Job中注解方式注入Service后运行却报空指针异常。原因是Quartz初始化是自己的JobContext,不同于Spring的ApplicationContext,所以无法直接注入。必须通过JobDetail中的需要进行如下的方式进行注入:原创 2017-03-20 15:57:34 · 2509 阅读 · 0 评论 -
SSH中集成Quartz任务调度
我在用SSH框架写图书管理系统的时候,需要对借阅图书进行逾期的处理,我想到了使用Quartz任务调度,定时对借阅表的借阅时间和截止时间进行检查。所以需要对Quartz有一定的了解和如何在Spring中配置Quartz。目前的版本已经是2.0以上,v2.x相对于v1.x有很多新特性出现,并有很多的改动,具体参见Quartz官网上说明。这里介绍的仍然是v1.x(v1.7.3)。 Spring所用的版本原创 2017-03-20 14:14:08 · 1360 阅读 · 1 评论 -
Spring+JDBC编程
Jdbc编程特点静态代码+动态变量 = jdbc编程。在spring中动态变量可以用注入的形式给予。这样的编程方式适合包装成模板。静态代码构成了模板,而动态变量则是需要传入的参数。引入DataSource在spring中注入DataSource核心类JdbcTemplate1、 基于模板的设置(为什么可以设置成基于模板的形式) 2、 完成了资源的创建和释放的工作 3、 简化为我们对JDBC原创 2017-02-12 10:19:26 · 435 阅读 · 0 评论 -
Spring的AOP编程
概念A. Aspect(切面) 比如说事务、权限等,与业务逻辑没有关系的部分 B. joinpoint(连接点) 目标类的目标方法。(由客户端在调用的时候决定)C. Pointcut(切入点) 所谓切入点是指我们要对那些拦截的方法的定义. 被纳入spring aop中的目标类的方法。D. Advice(通知) 所谓通知是指拦截到joinpoint之后所要做的事情就原创 2017-02-11 14:54:32 · 463 阅读 · 0 评论 -
Spring的两种代理方式:JDK动态代理和CGLIB动态代理
代理模式代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 A. 抽象主题角色 声明了真实主题和代理主题的共同接口,这样一来在任何可以使用真实主题的地方都可以是使用代理主题 B. 代理主题(Prox原创 2017-02-10 14:04:59 · 40991 阅读 · 15 评论 -
Spring基本功能详解
SpringIOCSpring的控制反转:把对象的创建、初始化、销毁等工作交给spring容器来做。由spring容器控制对象的生命周期。步骤: A. 启动spring容器在类路径下寻找配置文件来实例化容器 ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});可以原创 2017-02-08 14:47:27 · 7212 阅读 · 1 评论 -
Spring的基本特征和配置
Spring基本特征 Spring是一个非常活跃的开源框架;它是一个基于Core来构架多层JavaEE系统的框架,它的主要目地是简化企业开发. Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring Spring的组成Spring的jar包到http://www.springsource.org/download下载spr原创 2017-02-08 10:48:41 · 1528 阅读 · 0 评论