随笔分类 -  Spring

摘要:Springboot1.x与Springboot2.x版本下aop执行顺序 Springboot1.x 集成的Spring版本为4.x,Springboot2.x 集成的Spring版本为5.x。 创建SpringBoot项目 1.x版本pom.xml <?xml version="1.0" enc 阅读全文
posted @ 2021-04-11 17:32 Chinda 阅读(336) 评论(0) 推荐(0)
摘要:概述 跨域是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。 同源策略 协议、域名、端口都要相同,其中有一个不同都会产生跨域。 URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 阅读全文
posted @ 2020-06-14 14:06 Chinda 阅读(383) 评论(0) 推荐(0)
摘要:JDK动态代理 JDK动态代理是代理模式的一种实现方式。只能代理接口类,因为Java语言为单继承语言,所以只能以实现接口的方式构建代理对象。 简单示例 package com.chinda.aop; /** * 被代理接口 * * @author Wang Chinda * @date 2020/5 阅读全文
posted @ 2020-05-16 09:51 Chinda 阅读(376) 评论(0) 推荐(0)
摘要:前言 近年SpringCloud与SpringBoot更新迭代非常频繁,导致我们对两者的版本选型非常的困难。若是版本选择有问题, 会导致开发中调试兼容性占用非常多的得必要时间。 SpringCloud版本介绍 Spring Cloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节 阅读全文
posted @ 2020-03-20 07:24 Chinda 阅读(14565) 评论(1) 推荐(2)
摘要:在实际工作中, 此bean可能是满足业务需要的核心逻辑, 例如test()方法中可能会封装着某个核心业务, 如果在test()方法前后加入日志来跟踪调试, 直接修改源码并不符合面向对象的设计模式, 而随意改动源码也会造成一定的风险。不用怕, Spring为此提供了解决方案。 1.创建用于拦截的bea 阅读全文
posted @ 2018-05-25 15:17 Chinda 阅读(373) 评论(0) 推荐(0)
摘要:创建一个实体类UserManager: 创建配置文件: 测试: 控制台显示: 出错原因: UserManager中的dateValue属性是Date类型, 而XML中配置的却是String类型。 Spring针对此问题提供了两种解决方案: 1. 使用自定义属性编辑器 使用自定义属性编辑器, 通过继承 阅读全文
posted @ 2018-05-25 10:29 Chinda 阅读(556) 评论(0) 推荐(0)
摘要:一般情况下, Spring是通过反射机制利用bean的class属性指定实现类来完成实例化bean的。在某些特定的情况下, 想做一些定制,Spring为此提供了一个org.springframework.beans.factory.FactoryBean的工厂类接口, 用户可以通过实现该接口定制实例 阅读全文
posted @ 2018-05-22 17:49 Chinda 阅读(304) 评论(0) 推荐(0)
摘要:Spring 工作流程是先加载解析xml配置文件:配置文件中存在默认的标签,也可以自定义标签。解析默认标签调用: 1 private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { 2 if 阅读全文
posted @ 2018-05-21 17:33 Chinda 阅读(304) 评论(0) 推荐(0)
摘要:正常情况下 , 基于注解的生命要优先于基于 XML 的声明。 通过 AspectJ 注解 , 切面可以与 AspectJ 兼容 , 而基于 XML 的配置则是 Spring 专有的。由于 AspectJ 得到越来越多的 AOP 框架支持 , 所以以注解风格编写的切面将会有更多的重用机会。 控制台输出 阅读全文
posted @ 2017-03-04 13:25 Chinda 阅读(1765) 评论(0) 推荐(0)
摘要:指定切面的优先级: 在同一个链接点上应用不止一个切面时 , 除非明确指定 , 否则它们的优先级是不确定的。 切面的优先级可以通过实现 Ordered 接口或利用 @Order 注解指定。 实现 Ordered 接口 , getOrder() 方法的返回值越小 , 优先级越高 , 若使用 @Order 阅读全文
posted @ 2017-03-04 12:42 Chinda 阅读(439) 评论(0) 推荐(0)
摘要:用 AspectJ 注解声明切面: 要在 Spring 中声明 AspectJ 切面 , 只需要在 IOC 容器中将切面声明为 bean 实例。当在 Spring IOC 容器中初始化 AsjectJ 切面之后 , Spring IOC 容器就会为那些与 AspectJ 切面相匹配的 bean 创建 阅读全文
posted @ 2017-03-04 08:34 Chinda 阅读(540) 评论(0) 推荐(0)
摘要:AOP 的拦截功能是由 java 中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInter 阅读全文
posted @ 2017-03-03 20:59 Chinda 阅读(341) 评论(0) 推荐(0)
摘要:暂时没有搞懂。 阅读全文
posted @ 2017-03-03 19:29 Chinda 阅读(285) 评论(0) 推荐(0)
摘要:组件装配: <context:component-sacan> 元素还会自动注册 AutowiredAnnotationBeanPostProcesser 实例 , 该实例可以自动装配具有 @Autowired 和 @Resource 、 @Inject 注解的属性。 使用 @Autowired 自 阅读全文
posted @ 2017-03-03 15:17 Chinda 阅读(2718) 评论(0) 推荐(1)
摘要:在 classpath 中扫描组件: 当在组件类上使用了特定的注解之后 , 还需要在 Spring 的配置文件中声明 <context:component-scan>: base-package 属性指定一个需要扫描的基类包 , Spring 容器将会扫描这个基类包里及其子包中的所有类。 当需要扫描 阅读全文
posted @ 2017-03-03 11:47 Chinda 阅读(800) 评论(0) 推荐(0)
摘要:在 classpath 中扫描组件: 组件扫描(component scanning): Spring 能够从 classpath 下自动扫描 , 侦测和实例化具有特定注解的组件。 特定组件包括: @Component:基本注解 , 标识了一个受 Spring 管理的组件。 @Repository: 阅读全文
posted @ 2017-03-03 10:35 Chinda 阅读(1450) 评论(0) 推荐(0)
摘要:Spring 中有两种类型的 bean , 一种是普通的 bean , 另一种是工厂 bean , 即 FactroyBean。 工厂 bean 跟普通 bean 不同 , 其返回的对象不是指定类的一个实例 , 其返回的是该工厂 bean 的 getObject 方法所返回的对象。 控制台输出: I 阅读全文
posted @ 2017-03-03 08:33 Chinda 阅读(428) 评论(0) 推荐(0)
摘要:通过调用静态工厂方法创建 bean: 调用静态工厂方法创建 bean 是将对象创建的过程封装到静态方法中 , 当客户端需要对象时 , 只需要简单地调用静态方法 , 而不需要关心创建对象的细节。 要声明通过静态方法创建的 bean , 需要在 bean 的 class 属性里面指定拥有该工厂的方法的类 阅读全文
posted @ 2017-03-02 20:23 Chinda 阅读(7165) 评论(1) 推荐(8)
摘要:Spring IOC 容器可以管理 bean 的生命周期 , Spring 允许在 bean 声明周期的特定点执行定制的任务。 Spring IOC 容器对 bean 的生命周期进行管理的过程: 通过构造器或者工厂方法创建 bean 实例。 为 bean 的属性赋值和对其他 bean 的引用。 调用 阅读全文
posted @ 2017-03-02 16:57 Chinda 阅读(1627) 评论(0) 推荐(0)
摘要:Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言。 语法类似于 EL:SpEL 使用 #{...} 作为定界符 , 所有在大括号中的字符都将被认为是 SpEL , SpEL 为 bean 的属性进行动态赋值提供了便利。 通过 SpEL 可以实现: 通过 b 阅读全文
posted @ 2017-03-02 15:36 Chinda 阅读(27880) 评论(1) 推荐(10)