
Spring
文章平均质量分 58
Spring
一蓑烟雨任平生2024
这个作者很懒,什么都没留下…
展开
-
spring的初始化(基于IDEA)
pom.xml(导入spring的jar包)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/原创 2020-05-26 11:38:07 · 348 阅读 · 0 评论 -
Spring循环依赖
假设A、B循环引用,实例化A的时候就将其放入三级缓存中,接着填充属性的时候,发现依赖了B,同样的流程也是实例化后放入三级缓存,接着去填充属性时又发现自己依赖A,这时候从缓存中查找到早期暴露的A,没有AOP代理的话,直接将A的原始对象注入B,完成B的初始化后,进行属性填充和初始化,这时候B完成后,就去完成剩下的A的步骤,如果有AOP代理,就进行AOP处理获取代理后的对象A,注入B,走剩下的流程。实例化的过程又是通过构造器创建的,如果A还没创建好出来怎么可能提前曝光,所以构造器的循环依赖无法解决。原创 2024-04-09 21:46:09 · 748 阅读 · 0 评论 -
Spring 事务失效的几种情况
底层数据库引擎不支持事务 在非public修饰的方法使用 rollbackFor属性设置错误 本类方法直接调用 异常被try...catch吃了,导致事务失效。 publicclassTransactionTest{ publicvoidA(){ //插入一条数据 //调用方法B(本地的类调用,事务失效了) B(); } @Transactional publicvoidB(){...原创 2021-06-05 09:52:37 · 316 阅读 · 0 评论 -
spring Junit Test 单元测试教程
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.18.RELEASE</version&.原创 2021-05-01 08:22:20 · 1032 阅读 · 1 评论 -
spring拦截器的使用demo
https://cloud.tencent.com/developer/article/1527054原创 2021-03-21 20:56:22 · 239 阅读 · 0 评论 -
spring @Transactional注解参数详解
https://www.cnblogs.com/caoyc/p/5632963.html事物注解方式: @Transactional当标于类前时, 标示类中所有方法都进行事物处理,例子:1 @Transactional public class TestServiceBean implements TestService {}当类中某些方法不需要事物时: 1 @Transactional 2 public class TestServiceBean implements..转载 2021-03-21 14:18:29 · 539 阅读 · 0 评论 -
@ModelAttribute 的使用
https://www.cnblogs.com/lemon-coke-pudding/p/12740365.htmlhttps://www.cnblogs.com/cobcmw/p/12092591.html原创 2021-03-02 16:18:48 · 327 阅读 · 0 评论 -
serviceA调用serviceB,如果serviceB抛出异常,serviceA会不会回滚?
https://blog.csdn.net/J080624/article/details/74999858/问题描述serviceA中的methodA调用serviceB中的methodB,methodB抛出一个异常,然后methodA捕获掉这个异常,就会出现Transaction rolled back because it has been marked as rollback-only 异常(serviceA和serviceB都加了注解@Transactional(rollbackFor原创 2020-10-19 21:41:19 · 5909 阅读 · 0 评论 -
Spring注解事务不支持 protected private 方法的原因
疑惑@Transactional注解只能应用于 public方法,如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。大神说是由于Spring AOP 的本质决定的,暂时还不明白为什么。验证pom依赖 <dependencies> <dependency> <groupId>org.springframework.boot</gr..转载 2020-10-16 15:22:51 · 7110 阅读 · 0 评论 -
JDK 动态代理与 Cglib 动态代理
AOP(Aspect Oriented Programming),即面向切面编程,最主要的思想就是纵向重复,横向抽取。要想实现 AOP,其底层实现是使用了动态代理技术,在 Spring 中,动态代理技术分为传统的JDK 动态代理和Cglib 动态代理。这两种代理机制区别是: JDK 动态代理:针对实现了接口的类进行代理 Cglib 动态代理:针对没有实现接口的类进行代理,底层是字节码增强技术,生成当前类的子类对象。 假设我们有一个 UserService 接口,其中具有 CRUD..原创 2020-10-11 21:10:41 · 226 阅读 · 1 评论 -
JDK动态代理和CGLIB代理
1. 代理模式代理模式是一种比较好的理解的设计模式。简单来说就是我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义的操作。举个例子:你的找了一小红来帮你问话,小红就看作是代理我的代理对象,代理的行为(方法)是问话。https://medium.com/@mithunsasidharan/underst.转载 2020-09-28 09:18:13 · 149 阅读 · 0 评论 -
Spring MVC+Spring+Mybatis实现支付宝支付和微信支付功能(图文详解+完整代码)
前言本教程详细介绍了如何使用ssm框架实现支付宝支付功能。本文章分为两大部分,分别是「支付宝测试环境代码测试」和「将支付宝支付整合到ssm框架」,详细的代码和图文解释,自己实践的时候一定仔细阅读相关文档,话不多说我们开始。支付宝测试环境代码测试源代码https://github.com/OUYANGSIHAI/sihai-maven-ssm-alipay1.下载电脑网站的官方demo:下载:https://docs.open.alipay.com/270/106291/2.下转载 2020-08-25 20:33:40 · 1287 阅读 · 0 评论 -
Spring的Controller是单例还是多例?怎么保证并发的安全?
controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。我们下面来简单的验证下:packagecom.riemann.springbootdemo.controller;importorg.springframework.context.annotation.Scope;importorg.springframework.stereotype.Controller;importorg.springframework.web...原创 2020-08-18 22:14:16 · 297 阅读 · 0 评论 -
spring的循环依赖
1. 什么是循环依赖?循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。Spring中循环依赖场景有:(1)构造器的循环依赖(2)field属性的循环依赖其中,构造器的循环依赖问题无法解决,只能拋出BeanCurrentlyInCreationException异常,在解决属性循环依赖时,spri..转载 2020-08-17 21:17:23 · 544 阅读 · 0 评论 -
Spring的controller是单例还是多例,怎么保证并发的安全?
controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。我们下面来简单的验证下:package com.riemann.springbootdemo.controller;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import org.springframework.web.转载 2020-08-02 20:54:20 · 634 阅读 · 0 评论 -
Spring、SpringMVC、Mybatis常见面试题总结
Spring篇spring是什么?Spring 是分层的 Java SE/EE 应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。优势...转载 2020-07-30 16:31:46 · 2109 阅读 · 0 评论 -
Spring+SpringMVC+Mybatis 学习笔记
springSpring学习01:控制反转(IOC)与依赖注入(DI)Spring学习02:面向切面编程(AOP)Spring学习03:数据库操作模板JdbcTemplateSpring学习04:事务控制(TransactionManager)MybatisMybatis学习01:Mybatis入门案例及工作原理分析Mybatis学习02:使用xml进行Mybatis开发Mybatis学习03:多表查询和延迟加载Mybatis学习05:Mybatis逆向工程Sprin转载 2020-07-18 18:54:18 · 355 阅读 · 0 评论 -
spring事务传播行为
spring事务Spring的API设计很不错,基本上根据英文翻译就能知道作用:required:必须的。说明必须要有事务,没有就新建事务。required_new:必须新建事务。如果当前存在事务就挂起。supports:支持。说明仅仅是支持事务,没有事务就非事务方式执行。not_supported:不支持事务,如果存在事务就挂起。mandatory:强制的。说明一定要有事务,没有事务就抛出异常。never:绝不有事务。如果存在事务就抛出异常。PROPAGATION_R.原创 2020-07-14 19:55:54 · 298 阅读 · 0 评论 -
Spring Bean的生命周期
Bean 的生命周期概括起来就是 4 个阶段: 实例化(Instantiation); 属性赋值(Populate); 初始化(Initialization); 销毁(Destruction)。 实例化:第 1 步,实例化一个 bean 对象; 属性赋值:第 2 步,为 bean 设置相关属性和依赖; 初始化:第 3~7 步,步骤较多,其中第 5、6 步为初始化操作,第 3、4 步为在初始化前执行,第 7 步在初始化后执行...转载 2020-06-25 21:26:23 · 790 阅读 · 0 评论 -
spring知识总结
spring 是什么 Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。优势:.原创 2020-06-24 11:16:01 · 125 阅读 · 0 评论 -
spring(全注解2)
config.springcongconfigurationpackage com.itheima.config;import com.mchange.v2.c3p0.ComboPooledDataSource;import org.apache.commons.dbutils.QueryRunner;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation原创 2020-06-07 17:24:18 · 179 阅读 · 0 评论 -
spring(半注解半xml):使用Autowired
bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" x原创 2020-06-07 17:06:01 · 225 阅读 · 0 评论 -
spring_基于xml
bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http:.原创 2020-06-07 16:59:30 · 176 阅读 · 0 评论 -
spring基于纯注解的声明式事务控制
package com.itheima.dao.impl;import com.itheima.dao.IAccountDao;import com.itheima.domain.Account;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdb.原创 2020-05-27 20:34:58 · 167 阅读 · 0 评论 -
spring基于注解的声明式事务控制
package com.itheima.dao.impl;import com.itheima.dao.IAccountDao;import com.itheima.domain.Account;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdb.原创 2020-05-27 20:25:03 · 152 阅读 · 0 评论 -
spring基于xml的声明式事务控制
package com.itheima.dao.impl;import com.itheima.dao.IAccountDao;import com.itheima.domain.Account;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.support.JdbcDaoSupport;import java.util.List;/** * .原创 2020-05-27 20:17:23 · 142 阅读 · 0 评论 -
基于注解的AOP实现事务控制
package com.itheima.dao.impl;import com.itheima.dao.IAccountDao;import com.itheima.domain.Account;import com.itheima.utils.ConnectionUtils;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import o.原创 2020-05-27 20:04:05 · 391 阅读 · 1 评论 -
基于xml的AOP实现事务控制
package com.itheima.dao.impl;import com.itheima.dao.IAccountDao;import com.itheima.domain.Account;import com.itheima.utils.ConnectionUtils;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import o.原创 2020-05-27 19:57:10 · 185 阅读 · 0 评论 -
spring_JdbcTemplate
它是 spring 框架中提供的一个对象,是对原始 Jdbc API 对象的简单封装。spring 框架为我们提供了很多 的操作模板类。 操作关系型数据的: JdbcTemplate HibernateTemplate 操作 nosql 数据库的: RedisTemplate 操作消息队列的: JmsTemplate最基本的用法(不用spring,bean.xml)package com.itheima.jdbctemplate;import org.s.原创 2020-05-27 18:21:31 · 179 阅读 · 0 评论 -
Spring_Anno_AOP(基于注解的AOP)
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http.原创 2020-05-26 21:18:01 · 200 阅读 · 0 评论 -
spring——AOP(环绕通知)打印日志
bean.xml:<!-- 配置srping的Ioc,把service对象配置进来--><bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"></bean><!-- 配置Logger类 --><bean id="logger" class="com.itheima.utils.Logger"></bean><!.原创 2020-05-26 21:11:35 · 818 阅读 · 0 评论 -
SpringAOP(前置通知:打印日志)
<!--spring中基于XML的AOP配置步骤 1、把通知Bean也交给spring来管理 2、使用aop:config标签表明开始AOP的配置 3、使用aop:aspect标签表明配置切面 id属性:是给切面提供一个唯一标识 ref属性:是指定通知类bean的Id。 4、在aop:aspect标签的内部使用对应标签来配置通知的类型 我们现在示例是让printLog方法在切入点方法执行之前之前:所.原创 2020-05-26 20:43:08 · 526 阅读 · 0 评论 -
spring整合Junit
/** * 使用Junit单元测试:测试我们的配置 * junit单元测试中,没有main方法也能执行: * junit集成了一个main方法 该方法就会判断当前测试类中有哪些方法有 @Test 注解, * junit就让有@Test 注解的方法执行 * * 配置步骤: * 1.pom导入spring整合junit的jar(坐标)<dependency> <groupId>junit</groupId> <artifactId.原创 2020-05-26 16:30:35 · 202 阅读 · 0 评论 -
spring_anno_ioc_withoutxml(spring全注解,去除xml)
/** * 该类是一个配置类,它的作用和bean.xml是一样的 * spring中的新注解 * Configuration * 作用:指定当前类是一个配置类 * 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。 * 例如: ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class.原创 2020-05-26 16:27:09 · 196 阅读 · 0 评论 -
spring_anno_ioc(基于注解)常用注解解释
bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" x原创 2020-05-26 15:04:50 · 250 阅读 · 0 评论 -
spring_DI(依赖注入)
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://w.原创 2020-05-26 12:14:05 · 143 阅读 · 0 评论 -
spring_bean(Bean的知识)
<!--把对象的创建交给spring来管理--> <!--spring对bean的管理细节 1.创建bean的三种方式 2.bean对象的作用范围 3.bean对象的生命周期 --> <!--创建Bean的三种方式 --> <!-- 第一种方式:使用默认构造函数创建。 在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性...原创 2020-05-26 11:56:14 · 211 阅读 · 0 评论 -
Spring注入Date类型的3种方法
测试Bean:public class DateBean { private Date birthday; public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; }}方式1:利用SimpleDateFormat的构造方法注入<?xm...原创 2020-05-24 20:03:32 · 2335 阅读 · 3 评论 -
Spring 中 注解@Autowired和@Resources的区别
@Resource默认按byName自动注入。 既不指定name属性,也不指定type属性,则自动按byName方式进行查找。如果没有找到符合的bean,则回退为一个原始类型进行进行查找,如果找到就注入。 只是指定了@Resource注解的name,则按name后的名字去bean元素里查找有与之相等的name属性的bean。 只指定@Resource注解的type属性,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常。@Autowired @Autowired默认先按by原创 2020-05-09 09:56:01 · 374 阅读 · 0 评论