Spring framework
文章平均质量分 78
笑谈子云亭
南阳诸葛庐,西蜀子云亭
展开
-
日志切面实例
切面日志实例:自定义注解、AOP技术实现日志记录原创 2022-09-23 22:28:07 · 256 阅读 · 0 评论 -
spring(六)事务管理
一、Spring事务管理API1.1、事务管理器接口事务管理器是PlateformTransactionManager接口对象。主要用于事务提交、回滚、事务状态信息查询。PlateformTransactionManager接口常用实现类:DataSourceTransactionManager,使用JDBC或者Mybatis操作数据库时使用。spring事务默认回滚方式:发生异常或者error时回滚,发生受查(编译)异常提交。不过受查异常,程序员也可以手工设置其回滚方式。1.2、事务定义接口T原创 2022-01-20 21:23:08 · 568 阅读 · 0 评论 -
spring(四)SpringAOP
一、概念SpringAOP的底层实现就是对动态代理进行了封装,封装后我们只需要对关注的部分进行编码,并通过配置的方式完成指定目标方法的增强。相关概念:Target(目标对象):要被增强的对象,一般指业务逻辑类的对象。Proxy(代理):一个类被AOP织入增强以后,就产生了一个结果代理类。Aspect(切面):表示增强的功能,就是一些代码完成的某些功能,即非业务功能。是切入点和通知的结合。Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在Spring中,这些点是指方法(一般是类中业原创 2022-01-18 22:06:20 · 602 阅读 · 1 评论 -
spring(三)AOP-静态代理和动态代理
一、概念1.2、AOPAOP(Aspect Oriented Programming)面向切面编程,是通过预编译方式和运行时动态代理实现程序功能统一维护的一种技术。AOP作用:不修改源码的情况下,程序运行期间对功能进行增强。优点:减少代码重复,提高开发效率,便于维护。专注核心业务的开发开发过程中:各自只专注做自己的功能,运行时将服务性代码织入到核心代码中。通过spring工厂自动将服务性代码以切面方式加入到核心代码中。1.2、代理模式代理:通俗的讲,自己不想做的事情,找别人做。代理原创 2022-01-13 21:55:48 · 832 阅读 · 0 评论 -
spring(二)IoC控制反转
一、概念IoC:Inversion of Controller,即控制反转,不是一种技术,而是一种设计思想。IoC是指在程序开发中,实例的创建不再由调用者管理,而是由spring容器管理。Spring容器负责控制程序之间的关系,而不是由程序代码直接控制。控制权由程序代码转移到了Spring容器,控制权发生了反转,这就是Spring的IoC思想。二、案例2.1、创建项目,添加pom依赖<dependencies> <!-- 单元测试 -->原创 2022-01-11 20:29:41 · 722 阅读 · 0 评论 -
spring(一)概述
一、框架框架(FrameWork):框(约束性)架(支持性),在软件设计中是指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多组成部分,从而更迅速和方便的构建解决问题的方案。框架一般不完整到可以解决特定问题框架天生就是为扩展而设计的框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用工具(utilities),也就是说框架时常配套了一些帮助解决某类问题的库(libraries) 或工具(tools)学习框架的步骤:知道框架能做什么学习原创 2022-01-11 20:26:27 · 652 阅读 · 0 评论 -
Spring framework(十六)事务
一、概述事务(Transaction)是关系型数据库(RDBMS)企业应用程序重要组成部分,用来确保数据的完整性和一致性。1.1、事务的ACID原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中的动作要么都做要么都不做。一致性(Consistency):事务必须保证数据库从一个一致性状态变到另一个一致性状态。隔离性(Isolation):一个事务的执行不能被其他事务干扰,一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相打扰。持久性(Du原创 2021-12-07 21:03:08 · 307 阅读 · 0 评论 -
Spring framework(十五)JdbcTemplate类
一、概述JdbcTemplate位于spring-jdbc-x.x.x.jar包中,全限定命名 org.springframework.jdbc.core.Jdbctemplate。此外使用JdbcTemplate还需要导入spring-tx-x.x.x.jar包,用于处理事务和异常。Spring中,JDBC在XML中配置模板如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframewo原创 2021-12-07 21:02:03 · 639 阅读 · 0 评论 -
Spring framework(十三)CGLIB动态代理
一、概念JDK动态代理的目标类必须实现一个或者多个接口,具有一定的局限性。如果不希望实现接口,可以使用CGLIB代理。CGLIB(Code Generation Library)是一个高性能开源的代码生成包,它被许多AOP框架所使用,其底层是通过使用一个小而快的字节码处理框架ASM(Java字节码操控框架)转换字节码并生成新的类。使用CGLIB需要导入asm-x.x.jar和CGLIB-x.x.x.jar。如果已经导入spring-core-x.x.x.RELEASE.jar,就不用再单独导入这两个包了原创 2021-12-05 16:25:38 · 560 阅读 · 1 评论 -
Spring framework(十二)JDK动态代理
一、概念Spring JDK动态代理需要实现InvocationHandler接口,重写invoke方法,客户端使用java.lang.reflect.Proxy类产生动态代理类的对象。二、实例public interface UserManager { void addUser(String name,String password); void delUser(String name);}public class UserManagerImpl implements Us原创 2021-12-04 17:37:30 · 434 阅读 · 0 评论 -
Spring framework(十一)AOP
一、Spring AO概述AOP(Aspect Oriented Programming)面向切面编程,和OOP(面向对象编程)类似,是一种编程思想。AOP采取横向抽取机制(动态代理),取代了传统纵向继承机制的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。作用:分离功能性需求和非功能性需求,使开发人员集中处理每一个关注点或者横切逻辑,减少业务代码的侵入,增强代码的可读和维护性。目前流行AOP框架:SpringAOP和AspectJ。SpringAOP基于AOP编程模式的一原创 2021-12-04 17:35:55 · 522 阅读 · 0 评论 -
Spring framework(十)基于注解装配Bean
一、装配Bean的注解XML配置文件可以实现装配Bean,但是如果应用中Bean的数量较多,会导致XML配置文件过于臃肿,给升级维护带来一定的困难。JDK5.0以后,提供了Annotation(注解)功能,Spring2.5版本也提供了对Annotation技术的全面支持,可以使用注解来配置依赖注入。Spring默认不使用注解装配Bean,因此需要在XML配置文件中添加context:annotation-config/开启注解。注解包含如下:注解描述@Component它是原创 2021-12-04 17:35:08 · 674 阅读 · 0 评论 -
Spring framework(九)自动装配
一、概念Bean的装配可以理解为依赖关系注入,Spring容器支持多种Bean装配方式,基于XML的Bean装配,基于Annotation的装配和自动装配。自动装配就是指Spring容器在不适用和标签情况下,可以自动装配(autowire)相互协作的Bean之间的关联关系,将一个Bean注入到其他Bean的Property中。使用自动装配需要配置元素的autowire属性,autowire属性有五个值:名称描述no默认值,表示不使用自动装配,Bean依赖必须通过ref元素定义。原创 2021-12-03 22:39:21 · 246 阅读 · 0 评论 -
Spring framework(八)注入集合
一、说明传递类似于Java Collection类型的值,使用如下标签:标签说明注入list类型的值,允许重复注入set类型的值,不允许重复key-value集合,key-value可以是任意类型key-value集合,key-value是字符串类型二、实例2.1、四种类型Collection注入public class JavaCollection { List list; Set set; Map map; P原创 2021-12-03 22:37:26 · 356 阅读 · 0 评论 -
Spring framework(七)依赖注入
一、概念1.1、基本概念Spring依赖注入(Dependency Injection,DI)和控制反转含义相同,同一个概念。传统java程序,一个实例需要另一个实例时候,由调用者创建被调用的实例(如:new一个实例),而使用Spring框架后,被调用实例不再由调用者创建,而是由Spring容器创建,这称为控制反转。Spring容器在创建被调用实例时,会自动将调用者需要的对象实例注入给调用者,调用者通过Spring容器获得被调用者实例,这称为依赖注入。依赖注入两种方式:setter注入和构造函数注原创 2021-12-02 21:36:33 · 675 阅读 · 0 评论 -
Spring framework(六)Bean继承
一、概述Bean定义可以包含很多配置信息,包括构造函数参数、属性值和容器的一些信息:初始化、销毁方法等。子Bean可以继承父Bean的配置数据,还可以重写或者添加其他值。Spring Bean定义的继承与Java中继承无关,父类Bean的定义可以看做一个模板,其他子Bean从中继承所需的配置。配置文件中通过parent属性来指定继承的父Bean。二、实例2.1、继承、修改、添加public class Animal { private String name1; private原创 2021-12-02 20:19:53 · 209 阅读 · 0 评论 -
Spring framework(五)后置处理器
一、BeanPostProcessor接口BeanPostProcessor接口也称为后置处理器,通过该接口可以自定义调用初始化前后执行的操作。public interface BeanPostProcessor{ Object postProcessBeforeInitialization(Object bean,String beanName) throws BeansException; Object postProcessAfterInitialization(Obje原创 2021-12-02 20:18:44 · 472 阅读 · 0 评论 -
Spring framework(四)SpringBean生命周期
一、执行流程传统Java应用中,Bean的生命周期很简单,使用关键字new实例化Bean,不需要时,由Java GC回收。Spring中Bean的生命周期较为复杂:Bean的定义-> Bean的初始化 -> Bean的使用 -> Bean的销毁。Spring根据Bean的作用域来选择管理方式,对于singleton的Bean,Spring能够精准地知道该Bean何时被创建、何时初始化完成、何时被销毁;对于prototype作用域的Bean,Spring只负责创建,当容器创建Bean实原创 2021-11-30 22:13:25 · 403 阅读 · 0 评论 -
Spring framework(三)SpringBean
二、SpringBean由Spring IoC容器管理的对象称为Bean,Bean根据Spring配置文件中的信息创建。Spring配置文件支持两种格式,即XML文件格式和Properties文件格式。Properties:key-value,赋值和取值,适用简单的属性配置。XML:树形结构,但是内容较为繁琐,适用于大型复杂项目。Beans.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www原创 2021-11-28 21:43:21 · 423 阅读 · 0 评论 -
Spring framework(二)IoC容器
一、Spring IoC容器IoC容器管理对象的实例化和初始化,以及对象从创建到销毁的整个生命周期。Spring中使用的对象都有IoC容器管理,不需要我们手动使用new进行创建。由IoC容器管理的对象成为SpringBean,SpringBean就是java对象,和new的对象一样。Spring通过读取XML或Java注解中的信息来获取哪些对象需要实例化。Spring提供两种类型IoC容器:BeanFactory和ApplicationContext。1.1、BeanFactory容器Be原创 2021-11-28 21:41:48 · 476 阅读 · 0 评论 -
Spring framework(一)概述
一、Spring framework即Spring,是其他Spring全家桶的基础和核心:包括SpringMVC、SpringBoot、SpringCloud、SpringData、SpringSecurity。Spring由Rod Johnson创立,2004年发布了Spring框架的第一版,其目的是用户简化企业级开发的难度和周期。1.1、核心Spring是分层的JavaSE/EE一站式轻量级开源框架,以IoC(Inverse of Control,控制反转)和AOP(Aspect Oriente原创 2021-11-28 21:39:50 · 13074 阅读 · 1 评论