【Spring】
YvesHe
人的痛苦大部分来源于自我怀疑。
展开
-
Spring| AOP之 基于Schema的AOP
文章目录一. 基于Schema的AOP标签顺序二. 声明切面三. 声明切入点四. 声明通知1. 前置通知2. 后置返回通知3. 后置异常通知4. 后置最终通知5. 环绕通知五. 引入六. Advisor一. 基于Schema的AOP标签顺序基于Schema的AOP从Spring2.0之后通过“aop”命名空间来定义切面、切入点及声明通知。在Spring配置文件中,所以AOP相关定义必须放...原创 2019-06-28 18:35:36 · 359 阅读 · 0 评论 -
Spring| AOP之 切点(Pointcut)
文章目录一. 什么是切点?二. 切点表达式的使用?三. Spring AOP所支持的AspectJ切点指示器一. 什么是切点?通知定义了切面的“什么”和“何时”的话, 那么切点就定义了“何处”。 切点的定义会匹配通知所要织入的一个或多个连接点。 我们通常使用明确的类和方法名称, 或是利用正则表达式定义所匹配的类和方法名称来指定这些切点。 有些AOP框架允许我们创建动态的切点, 可以根据运行时...原创 2019-06-25 19:43:00 · 5340 阅读 · 1 评论 -
Spring| 通过Spring设置请求的编码格式
示例代码:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio...原创 2019-06-13 19:55:03 · 208 阅读 · 0 评论 -
Spring| 通过Spring设置请求的编码格式
示例代码:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio...原创 2019-06-11 19:15:52 · 2359 阅读 · 0 评论 -
Spring| Spring与Web整合
1.整合目的将所有对象的创建与管理任务交给Spring容器,降低程序的耦合度。2.整合途径将Spring容器注入到Web容器中。3.具体实现使用ServletContextListener监听ServletContext,当ServletContexxt创建时同时创建Spring容器,并将创建完成的容器放到ServletContext即application中,在Web中获取Spri...原创 2019-06-11 19:15:33 · 1090 阅读 · 0 评论 -
Spring| Spring 加载和使用properties配置文件
文章目录1.让Spring加载管理properties文件2.在Spring中使用properties文件内容3.相关配置说明1.让Spring加载管理properties文件基于注解的方式可以使用Environment来获取配置信息,也可以参考第二点中的使用方式.PropertySource注解的value是String[],支持配置多个properties文件.@Configura...原创 2019-06-11 14:55:30 · 645 阅读 · 0 评论 -
Spring 加载和使用properties配置文件
文章目录1.让Spring加载管理properties文件2.在Spring中使用properties文件内容3.相关配置说明1.让Spring加载管理properties文件基于注解的方式可以使用Environment来获取配置信息,也可以参考第二点中的使用方式.PropertySource注解的value是String[],支持配置多个properties文件.@Configura...原创 2019-06-11 14:55:30 · 473 阅读 · 0 评论 -
Spring| IoC 之 2.1 IoC基础
文章目录2.1.1 IoC是什么2.1.2 IoC能做什么2.1.3 IoC和DI2.1.1 IoC是什么Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转...原创 2019-06-05 09:42:55 · 247 阅读 · 0 评论 -
Spring| DelegatingFilterProxy详解
概要:DelegatingFilterProxy类不是针对SHIRO出现的,是SHIRO的org.apache.shiro.spring.web.ShiroFilterFactoryBean 使用到了SPRING这个类提供功能。这个类使SPRING容器中的BEAN可以在WEB.XML中配置为FILTER,并生效。这样一来及起到了过滤URL请求作用,又可以访问SPRING容器中其他的BEAN提供的...原创 2019-06-10 20:12:43 · 1167 阅读 · 0 评论 -
Spring| Spring之util命名空间
Spring之util命名空间util命名空间可以帮助我们快速的定义list、map、set等。如果要使用它,我们首先需要在XML配置文件中引入其对应的namespace。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" ...原创 2019-06-10 18:32:31 · 2112 阅读 · 0 评论 -
Spring| 懒加载与非懒加载
懒加载说明:用lazy-init。告诉spring容器是否以懒加载的方式创造对象。用的时候才加载构造,不用的时候不加载取值:true(懒,真正调用到的时候再加载)、false(非懒,已启动spring容器就创建对象)、default(懒)示例如下:<bean id="test1" class="cn.java.ioc1.YelloMouseWolf" lazy-init="defa...原创 2019-06-10 17:21:05 · 585 阅读 · 0 评论 -
Spring| Spring的BeanFactoryPostProcessor和BeanPostProcessor
BeanFactoryPostProcessor和BeanPostProcessor,这两个接口,都是Spring初始化bean时对外暴露的扩展点。两个接口名称看起来很相似,但作用及使用场景却不同,分析如下:1、BeanFactoryPostProcessor接口该接口的定义如...原创 2019-06-10 14:54:10 · 356 阅读 · 0 评论 -
Spring| @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
零、前言对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,...转载 2019-06-15 15:32:15 · 236 阅读 · 0 评论 -
Spring|Spring的事务 事务管理器
文章目录9.2.1 概述9.2.2 内置事务管理器实现一、声明对本地事务的支持:二、Spring对全局事务的支持:9.2.1 概述Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口PlatformTransactionManager,从而能支持各种数据访问框架的事务管理,PlatformTransactionManag...原创 2019-07-01 20:40:53 · 4578 阅读 · 0 评论 -
Spring| Spring的事务 声明式事务
文章目录9.4.1 声明式事务概述9.4.2 声明式实现事务管理1、定义业务逻辑实现,此处使用ConfigUserServiceImpl和ConfigAddressServiceImpl:2、定义配置文件(chapter9/service/ applicationContext-service-declare.xml):3、修改测试方法并测试该配置方式是否好用:4、执行测试:9.4.4 配置...原创 2019-07-01 20:40:17 · 422 阅读 · 0 评论 -
Spring| Spring汇总
public static void main(String[] args) { LinkedHashMap&lt;String, String&gt; accessOrderedMap = new LinkedHashMap(16, 0.75F, false) { @Override protected boolean r...原创 2019-10-11 10:12:09 · 208 阅读 · 0 评论 -
Spring|Spring的事务 数据库事务概述
9.1 数据库事务概述事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可:原子性(Atomicity) :即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做;一致性(Consistency) :在事务执行前数据库的数据处于正确的状态,而...原创 2019-07-01 20:41:22 · 202 阅读 · 0 评论 -
Spring| AOP 之代理机制
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题:1.不能通知fi...原创 2019-07-02 08:58:46 · 199 阅读 · 0 评论 -
Spring| AOP 切面实例化模型
所谓切面实例化模型指何时实例化切面 。Spring AOP支持AspectJ的singleton、perthis、pertarget实例化模型(目前不支持percflow、percflowbelow 和pertypewithin)。singleton:即切面只会有一个实例;perthis:每个切入点表达式匹配的连接点对应的AOP对象都会创建一个新切面实例;pertarget:每个切入点表...原创 2019-07-02 09:00:42 · 1106 阅读 · 0 评论 -
Spring| AOP-通知顺序
如果我们有多个通知想要在同一连接点执行,那执行顺序如何确定呢?Spring AOP使用AspectJ的优先级规则来确定通知执行顺序。总共有两种情况:同一切面中通知执行顺序、不同切面中的通知执行顺序。首先让我们看下1) 同一切面中通知执行顺序:同一切面中通知执行顺序如下图所示而如果在同一切面中定义两个相同类型通知(如同是前置通知或环绕通知(proceed之前))并在同一连接点执行时,其...原创 2019-07-02 08:59:35 · 414 阅读 · 0 评论 -
Spring| AOP 之通知参数
文章目录一. 使用JoinPoint获取二. 自动获取前边章节已经介绍了声明通知,但如果想获取被被通知方法参数并传递给通知方法,该如何实现呢?接下来我们将介绍两种获取通知参数的方式。一. 使用JoinPoint获取Spring AOP提供使用org.aspectj.lang.JoinPoint类型获取连接点数据,任何通知方法的第一个参数 都可以是JoinPoint(环绕通知是Proceed...原创 2019-07-02 08:58:18 · 735 阅读 · 0 评论 -
Spring| Spring之AOP汇总
1.AOP 之 AOP基础2.AOP 之 AOP的HelloWorld3.AOP 之 基于Schema的AOP4.AOP 之 基于@AspectJ的AOP5.AOP 之 AspectJ切入点语法详解6.AOP 之 通知参数7.AOP 之 通知顺序8.AOP 之 切面实例化模型9.AOP 之 代理机制...原创 2019-06-29 12:01:28 · 212 阅读 · 0 评论 -
Spring| AOP-AspectJ切入点语法详解
文章目录6.5.0 Spring AOP支持的AspectJ切入点指示符6.5.1 命名及匿名切入点6.5.2 类型匹配语法6.5.3 组合切入点表达式6.5.4 切入点使用示例6.5.0 Spring AOP支持的AspectJ切入点指示符切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示...原创 2019-07-02 09:01:34 · 388 阅读 · 0 评论 -
Spring| Spring中的动态代理配置(aspectj-autoproxy属性介绍)
一. Spring中的代理JDK动态代理:其代理对象必须是某个接口的实现,它是通过运行期间创建一个接口的实现类来完成对目标对象的代理.CGLIB代理:实现原理类似于JDK的动态代理,只是它在运行期间生成目标类扩展的子类对象.(也就是通过继承的方式创建的代理类).CGLIB是高效的代码生成包,底层是依靠ASM(开源的Java字节码编辑类库)操字节码实现的,性能比JDK强.基于注解...原创 2019-06-28 19:07:14 · 5360 阅读 · 0 评论 -
Spring| AOP之 引入(Introductions)
在看此文章之前,你可能已经知道了,Spring是通过Before、After、AfterRunning、AfterThrowing以及Around 共5中通知方式为目标方法增加切面功能,比如一个需要在目标类执行一个目标方法之前和之后分别打印一份日志,就可以建立一个切面在这个方法前后打印日志。但是如果我想在此目标类中再增加一个目标方法是,该怎么办呢? 最简单的办法就是在建立此目标类的时候,增加此方...原创 2019-06-28 12:44:06 · 1432 阅读 · 0 评论 -
Spring异常| Null return value from advice does not match primitive return type for
1.具体异常信息org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public boolean com.yveshe.Performance.perform(java.lang.String,java.lan...原创 2019-06-27 09:51:56 · 6862 阅读 · 1 评论 -
Spring| @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
零、前言对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,...转载 2019-06-15 15:32:15 · 199 阅读 · 0 评论 -
Spring|Spring注解@Resource和@Autowired区别对比
Spring注解@Resource和@Autowired区别对比 @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如果...转载 2019-06-10 11:24:39 · 339 阅读 · 0 评论 -
Spring| context:include-filter与context:exclude-filter的区别
示例代码:<!-- 扫描@Controller注解 --><context:component-scan base-package="com.fq.controller"> <context:include-filter type="annotation" expression="org.springframework.stereotype...原创 2019-06-10 10:39:12 · 482 阅读 · 0 评论 -
Spring| Spring的代理模式获取到的对象是代理对象,但是不影响对结果的操作
Spring| Spring的代理模式获取到的对象是代理对象,但是不影响对结果的操作原创 2018-03-06 15:06:53 · 1441 阅读 · 0 评论 -
1.Spring的注解开发
Spring的注解开发除了四个核心jar还需要aop的jar.Spring注解开发,开启注解的配置: <!-- 开启注解扫描 到包里面扫描类、方法、属性上面是否有注解 (开发一般建议使用) --> <context:component-scan base-package="cn.itcast"></context:component-scan> <!--原创 2017-09-16 13:20:47 · 480 阅读 · 0 评论 -
十一.spring整合web项目原理
1 加载spring核心配置文件:ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml");如果每次请求都new ApplicationContext 对象,功能可以实现,效率很低,我们需要思考的是程序启动后只new一次对象.2 实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成.3原创 2017-09-16 12:25:53 · 296 阅读 · 0 评论 -
十.Spring的分配置文件开发
方式一: 创建工厂的时候加载多个配置文件.ApplicationContext applicationContext = newClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");方式二: 在一个配置文件中包含另一个配置文件.<import resource="applicatio原创 2017-09-16 12:16:53 · 327 阅读 · 0 评论 -
九.Spirng名称空间p的属性注入的方式介绍
名称空间 p 的属性注入的方式是Spring2.x 版本后提供的方式.这种注入属性的方式现在不常见,用的也不多,但还是可以了解下.要了解p名称空间注入属性,首先得了解名称空间.<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2017-09-16 11:23:33 · 538 阅读 · 0 评论 -
八.Spring的属性注入-注入对象,复杂的集合类型属性
在上一篇博客上,用字符串类型的属性简单的介绍了下Spring的属性注入,这片文章会介绍更高级的属性注入.属性注入-注入对象类型场景介绍:我们现在要做一个新增用户的操作. 在不使用Spring类开发时,我们传统的开发应该是UserService通过UserDao来操作数据库实现对User的新增,代码如下. 传统的开发:package cn.com.yves.spring;public class原创 2017-09-16 09:47:47 · 1026 阅读 · 0 评论 -
一.Spring介绍
1.简介:Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。 它是为了解决企业应用开发的复杂性而创建的。 框架的主要优势之一就是其分层架构, 分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应原创 2017-09-12 22:09:48 · 536 阅读 · 0 评论 -
五.解决Spring配置文件中标签不提示
写在前面,当我们在有网的情况下,不管我们的是项目是maven项目还是普通的项目,在编写Spring的配置文件Application.xml的时候不会出现标签没有提示的问题.本文主要解决的是当不能上网的环境下出现标签没有提示的问题,比如博主公司就是在内网开发,不能访问互联网.解决办法: 1.首先下载一个完整的spring的release版本. 2.在application.xml中找到不同出现提示原创 2017-09-13 00:22:30 · 6388 阅读 · 0 评论 -
四.Spring的schema模板
在从官网下载下来的release项目中spring-framework-4.3.2.RELEASE解压后在 spring-framework-4.3.2.RELEASE\docs\spring-framework-reference\html下的 xsd-configuration.html文件是官方提供的各个模块与之对应的schema模板样式.这里以spring-beans-4.3.2.REL原创 2017-09-12 23:45:03 · 1709 阅读 · 0 评论 -
七.Spring的属性注入的方式-简单String类型
属性注入,顾名思义就是在创建对象的时候给类中的成员属性设置值.Java中的属性注入(三种)(1)使用set方法注入 (2)使用有参数构造注入 (3)使用接口注入 Spring中的属性注入(两种)在spring框架中只set方法和有参数的构造方的注入,不支持接口方法注入.这里以注入参数为最简单的类型字符串类型String为例子介绍下两种注入方式.关于属性是对象类型和复杂的集合类型的属性见我另外一原创 2017-09-14 08:07:15 · 3362 阅读 · 0 评论 -
三.Spring中IOC与DI的的区别
依赖注入的前提: 有IOC的环境,也就是将必须对象的创建权交给了Spring.DI 介绍 Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去.原创 2017-09-12 22:42:12 · 1181 阅读 · 0 评论