Spring 全家
文章平均质量分 61
Spring 全家
极光雨雨
“芝士”与你分享 ———纳西妲
展开
-
spring restTemplate的使用和学习总结
在 Spring 内,是一个非常方便的 HTTP 客户端。虽然在 Spring 5 中WebClient是推荐的替代方法用于进行异步请求,但依然被广泛使用于同步请求场景。以下是一些使用的基础用法示例。原创 2024-04-29 17:16:54 · 789 阅读 · 0 评论 -
spring DisposableBean作用,在spring Bean销毁时的钩子 以及@PreDestroy
在Spring框架中,DisposableBean是一个接口,它定义了一个单一的方法,用于在Spring容器关闭时或一个由Spring管理的Bean不再需要时执行特定的清理操作。DisposableBean接口在Spring框架中用于定义Bean的销毁逻辑,允许开发者在Bean生命周期结束时执行必要的资源释放、清理工作,以保证应用程序的健壮性和系统资源的有效管理。在Spring的XML配置文件中,可以直接为某个元素指定一个destroy-method属性,其值为Bean类中需要在销毁时调用的方法名。原创 2024-04-24 16:48:26 · 830 阅读 · 0 评论 -
@KafkaListener 注解配置多个 topic
其中 ${xxxx.topic1} 为从springBoot 配置文件中读取的属性值。由于该注解 topic 为字符串数组的类型,所以可以如上加大括号来完成指定。原创 2023-12-18 16:15:27 · 1167 阅读 · 0 评论 -
RPC 框架 openfeign 介绍和学习使用总结
*** feign返回结果自定义解析// type.getTypeName() 最上方创建请求时 定义的返回结果的toString 结果 if(type . getTypeName() . contains(XxxxxResult . class . getName())) {// 检查返回是否为对方定义的成功码 如果不是抛出异常 if(!// 可以使用自定义异常类 这里示例使用普通异常 throw new Exception(result . getMessage());原创 2023-11-10 16:37:50 · 1765 阅读 · 1 评论 -
spring 循环依赖以及解决方式
简单来说就是在你的某个 AService 中(已经注入到容器),注入了 BService ,但是在BService 中, 也同时注入了 AService,两个 service 形成了循环互相依赖。在一般的场景中更多的是说A 依赖 B, B 依赖 C, 然而 C 反过来依赖 A 这样也构成了循环当循环形成会导致无法判断先注入那一个导致系统抛出错误即 某些类在系统上下文中形成了一个循环。原创 2023-10-16 11:32:52 · 515 阅读 · 0 评论 -
springboot kafka消息消费学习 @KafkaListener 使用
下面文件是读取本地 spring 的标准配置文件的类,用于一般属性获取等操作。为其他用于控制get set 方法的,与 此处配置不是强关联,可以没有。用途:定义使用的基本 kafka 配置,以及定义Bean。spring boot 用于判断当前类是否加载的条件。: 为我们的业务服务层,用于消费消息。原创 2023-09-05 15:05:52 · 2486 阅读 · 1 评论 -
Spring boot @ConditionalOnProperty 使用以及作用
注册实体到spring 中时,都可以通过 @ConditionalOnProperty 来控制是否加入或者说有无该项。通过读取本地配置文件中的值来判断 某些 Bean 或者 配置类 是否加入spring 中。即: 来源于Spring boot 中的自动化配置部分。: 如果有前缀则为前缀后面的所有。: 为配置项的值等于某一值时生效。: 为配置前缀,可以没有。properties 中。原创 2023-09-05 10:47:58 · 668 阅读 · 0 评论 -
大事务出现原因以及解决方式学习总结 以及编程式事务和声名式事务
即通过注解开启的事务Spring 提供了一个特殊类用来灵活在代码中实现spring 事务。原创 2023-07-13 11:33:31 · 487 阅读 · 0 评论 -
Spring 事务失效的十二种场景,以及事务传播机制特性 学习总结
Transactional 可以指定 回滚的异常类型,如果指定的异常类型与实际抛出的不一致那么也将无法回滚数据如下:MyException 为我们自定义的异常,如果抛出了其他非我们自定义的异常,例如我们引用的jar 等里面的异常,此时将失效实际使用时如果使用默认值,一旦程序抛出了Exception,事务不会回滚。Exception或Throwable。原创 2023-07-13 10:18:18 · 1685 阅读 · 0 评论 -
SpringBoot ApplicationRunner 应用初始化动作学习总结
定义多个上面的启动动作类时,可以通过注解 @Order 中的value 值来指定书顺序类似于并将按顺序Order 执行 先1 ,后2// ............初始化代码 } }// ............初始化代码 } }原创 2023-06-30 14:30:55 · 570 阅读 · 0 评论 -
Spring Boot 注解简单集成 Kafka
使用 kafka 提供的 KafkaTemplate 来完成消息的发送。发送时可以进一步简化入参,具体看send 的重载方法即可,这里提供一种。Slf4j 仅为日志 ,如果不用 lombok 可以去除不要。可能会发现 注入的地方有爆红,但是不用关心,依旧可以正常启动。注意文件一定要在spring 扫描的路径下。原创 2023-06-19 15:53:22 · 477 阅读 · 0 评论 -
spring 注解 @RequestPart @RequestParam 获取文件流 MultipartFile ,读取Excel等文件
RequestParam 适用于 name-valueString 类型的请求域,@RequestPart适用于复杂的请求域(像JSON,XML)当转为字节数据时,数据同样可以被存储到数据库中,在数据库中使用 blob 系列的字段做存储,但也只适用于少量的存储,太多或者太大时不推荐。@RequestPart这个注解用在。@RequestParam也同样支持。表单提交请求的方法上。原创 2023-06-06 15:13:21 · 2567 阅读 · 0 评论 -
TransactionSynchronizationManager 事务同步管理器使用场景 将某一动作或异步线程动作放到主线程事务提交之后执行 方法
直译是事务同步管理器(者),来源为 spring 框架内部存在很多ThreadLocal 用管理资源,使用Spring 时事务链接也都会交给Spring 管理和开启,不论是通过注解还是xml Bean 的方式加入事务管理,最终都会向其中写入事务实例,用于 spring 自动处理数据源的链接,事务的提交等等操作。原创 2023-03-16 10:25:50 · 1402 阅读 · 0 评论 -
@ControllerAdvice @ExceptionHandler用法 全局异常处理两种方法(HandlerExceptionResolver)及全局返回处理 ResponseBodyAdvice
@controllerAdvice @ExceptionHandler @HandlerExceptionResolver ResponseBodyAdvice原创 2023-03-01 18:13:03 · 1626 阅读 · 0 评论 -
spring spring-boot @valid @NotNull @NotEmpty 基本校验使用以及 全局异常优化集成
其中的 Response 为我自己定义的接口返回对象,Response.failMessage 会将失败信息放到的对象 message 属性中一并返回。一套标准的基础校验,可以将校验注解和附带错误信息添加到请求入参上即可完成校验,可以去除简单的校验代码,节省一定的时间和代码量。这里的 @valid 说明后面定义的实体需要进入校验,必须要加,否则实体内定义了校验注解不会生效。指定不同异常类型的处理方式 针对不同的异常上面的特殊处理可以有多个。显然这样的内容是不可读的,需要整理。但是这样的处理未免太过麻烦,原创 2023-03-01 16:57:47 · 1852 阅读 · 0 评论 -
Spring-boot @ConfigurationProperties(prefix = “/xx“) 实际作用以及实现思路
配置 @ConfigurationProperties 的类会被额外处理,根据 prefix 去找配置文件中的指定配置值并完成赋值过程。配置了指定注解的 @ConfigurationProperties 类会在Bean 实例化完成后执行指定动作。可以通过配置该注解到我们自己创建的类上达成取代 @Value 的作用。其中 prefix 指定了配置文件中的配置值得开头值。里面可以定义在类实例化完成后的自定义动作。最终目的都是读取到配置文件中的值而已。这个关系到这个接口下实现的方法。原创 2023-02-27 11:21:00 · 1532 阅读 · 0 评论 -
spring-boot @EnableTransactionManagement 作用
开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactional 后当前方法将支持事务。效果等同于一般spring中 xml配置的。在springboot项目中一般配置在启动类上。该注解置于spring-boot 启动类上。放在类上时 所有方法支持事务。该注解表示开启事务支持。原创 2023-02-27 10:19:47 · 386 阅读 · 0 评论 -
springBoot 读取yml 配置文件的三种方式 (包含以及非component下)
这种方式没有实际使用过,但也记录一下SpringBoot 也提供了将配置文件中的数据封装到自定义实体类对象中的方式为了将实体类 bean 的创建交给 Spring 管理 在自定义类上添加 @Component 注解使用 @ConfigurationProperties 注解表示加载配置文件,在该注解中也可以使用 prefix 属性指定只加载指定前缀的数据在需要使用该类的controller, Service等中进行注入}原创 2022-09-15 11:11:48 · 13071 阅读 · 1 评论 -
applicationContext.getBeansOfType 获取一个接口下所有实现类 执行方法或者获取实现类对象等 操作应用场景学习总结
当前类首先要获取spring 的 applicationContext 对象(环境需要是 springframework 框架),然后在项目启动时执行 applicationContext.getBeansOfType 以获取我们目标接口下的所有实现类,然后执行我们后续的其他操作。大的框架需要如下搭建参考代码以上重写方法 数据在项目初始化时即可完成 即上方两个方法以及属性其实在项目初始化时已经执行完成,下方继续加入其他在项目中实际调用的方法的即可MyHandler 即一般的接口我这里类似如下定义这里原创 2022-06-24 16:29:22 · 11234 阅读 · 0 评论 -
@Aspect AOP总结 @Pointcut @Around@Before@After 简单示例 以及对某一方法或者拥有某一注解的方法进行增强写法
Maven <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.7.4</version> </dependency> <dependency>原创 2022-05-27 17:57:36 · 797 阅读 · 0 评论 -
Spring ApplicationContextAware,InitializingBean 作用以及使用学习总结 spring bean初始化流程总结
ApplicationContextAwaresping 框架提供的用于获取应用环境启动后获取(ApplicationContext)环境上下文 和容器中的beanApplicationContextAware 直译过来即 “应用程序上下文感知”常见用法即工具类import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.sprin原创 2022-04-15 14:45:34 · 2463 阅读 · 0 评论 -
Spring security 中 access 所有类型以及security 配置文件中的写法和文件头学习总结
以下均处于非spring Boot项目中的配置文件头spring-security.xml 中文件最外层的命名<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" xmlns:xsi="h原创 2022-04-15 11:01:59 · 1240 阅读 · 0 评论 -
ApplicationListener<ContextRefreshedEvent> 初始化动作接口学习及理解
ApplicationListener< ContextRefreshedEvent> 说明ApplicationListener< ContextRefreshedEvent> 一般被用于在项目初始化动作完成后执行的自己业务拓展动作,简单来说就是 实现该接口的 类将会需要重写 某一方法,作为应用初始化完毕后执行的动作。需要注意的是先有 InitializingBean,后有 ApplicationListener< ContextRefreshedEvent>,也原创 2022-04-06 17:18:11 · 4857 阅读 · 0 评论 -
ApplicationContext 获取Spring 中的Bean 理解以及方式,注入的获取理解
ApplicationContext 中获取 bean原创 2022-04-06 16:23:25 · 4090 阅读 · 0 评论 -
spring框架 在Util一般工具类中加载spring中的Bean对象(服务类等)
准备工作在一般的Util工具类中,并没有 spring中的 @component 等注解,不能直接使用spring 的注入,一般的成员属性可能均为静态成员属性,包括对外提供的方法也都是静态的,而如果我们想在Util工具类使用被 @service 某一服务模块的对象显然是不能直接引用的,一方面是加载顺序的,一方面并不支持注入。此时可以再添加一个用于获取 Spring bean的中间工具类,间接获取 spring 中的bean添加如下:import org.springframework.beans.B原创 2021-11-12 13:51:01 · 1720 阅读 · 0 评论 -
spring框架(springframework) HandlerInterceptorAdapter 拦截器学习使用总结 检查是否有自定义注解案例
HandlerInterceptorAdapter描述HandlerInterceptorAdapter 面向切面编程的过程中应用,在你的一个服务被调用之前或者之后,可以通过 extends 这个类 来重写里面的几个方法,而这些方法对应了在调用你的服务之前或者之后允许你自定义的一些操作,一般用来权限验证,日志输出等等。基于Java反射。进入该类后可见package org.springframework.web.servlet.handler;import javax.servlet.http.原创 2021-09-30 17:37:27 · 1259 阅读 · 0 评论 -
spring 在类的静态方法中 通过注解注入Service等成员并在静态方法中使用该成员属性
背景在一个一般的类中,类中的方法都是静态方法,但却想在该一般类中通过注入(@Autowired)的方式,带入一般的Service对象 达成在静态方法中调用Service的功能。且在我的环境中,是通过其他文件的Java代码 使用Class反射的方式调用的该静态方法。问题在静态方法中,只能使用静态成员属性,一般类不支持注解@Autowired的注入方式解决在当前类上加入了@Component注解 使得可以使用注解注入,并交由Sping容器管理。同时注入要调用的Service以及同类型的原创 2021-09-09 19:29:03 · 1071 阅读 · 0 评论 -
Spring注解 @Component @Bean @Repository 注解学习总结,使用场景
@Component 理解作用用于类上, 一般用于声明该类,并将该类交由springIOC容器管理(就是在IOC容器中添加该类)。让spring识别到该类,作为一个组件类,然后可以通过注入的方式(@Autowired,@Resource)可以注入引用。引用在@Controller, @Service, @Repository 这些注解中可以看到已经加入了@Component注解,其实都是交给了Spring容器管理,使得能在项目环境中识别到该类的存在并进行下一步操作。repositoryCont原创 2021-08-27 16:22:42 · 1257 阅读 · 0 评论 -
框架专题 spring配置文件 applicationContext.xml 重新学习总结 + spring配置事务示例 +aop配置
applicationContext.xml 重识从整体上来看该xml文件相当于是一个内容很大的类,只不过相比于一般的类来说。配置性东西很多,要更加灵活。spring文件最外层的beans感觉像是申明一样的东西,查阅后说是申明 命名空间,感觉像是在一个实体中声明,为了后面使用,一些特殊开头的标签使用时都需要先有这些才行。最外层<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframewo原创 2021-08-09 15:44:31 · 284 阅读 · 0 评论 -
@Autowired 和 @Resource 学习总结及区别
@AutoWiredSpring框架提供,切换其他框架可能就不能生效了,一般按类型注入 byType,若想按名字需要与注解 @Qualifier 配合使用只包含一个参数 required 表明是否开启自动注入案例:@Servicepublic class TestService{ @Autowired @Qualifier("user1") private IUser user;}不仅支持成员的注入 还支持构造函数, 一般方法, 参数, 成员变量, 注解在原创 2021-08-04 19:30:46 · 241 阅读 · 0 评论 -
SpringBoot 部署war包支持
需要在springBoot启动类也就是SpringBootApplication的同级目录创建一个新的类,具体可以参考如下import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;/** * 部署war包支持 */public class ServletIniti原创 2021-04-05 12:32:21 · 99 阅读 · 0 评论 -
SpringBoot DAO层映射文件(与mybatis的xml对应的接口文件)
该类文件放置地方要在springboot启动类的MapperScan中声明,没有放到指定路径下会报找不到的错误,需要使用其他手段,最简单的方式是放到声明的MapperScan的大路劲下如:@SpringBootApplication@MapperScan({"com.路径.dao","com.其他路径","com.其他路径"})public class SpringBootApplicationStater{ ..........}所有dao层映射文件都应在这些路径下面或者在对应dao原创 2021-04-05 12:26:41 · 1570 阅读 · 0 评论 -
Spring ,SpringMVC, SpringBoot关系
Spring MVC,Spring Boot都属于SpringSpringMVC 是基于Spring的一个 MVC 框架,而SpringBoot 是基于Spring的一套快速开发整合包。Spring说Spring,一般指代的是Spring Framework,是一个开源应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代码变得繁杂混乱的大量的业务/工具对象,说的更通俗一点就是由框架来帮你管理这些对象,包括它的创建,销毁等,比如基于Spring的项目里经常能看到的Bean,它原创 2021-04-05 12:20:18 · 221 阅读 · 0 评论 -
SpringBoot Application.properties的公用配置
数据库连接池spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.druid.stat-view-servlet.enabled=true编码#指定http请求和相应的Charsetspring.http.encoding.charset=UTF-8#是否开启http的编码支持spring.http.encoding.enabled=true#是否强制对http请求和相应进行编码spri原创 2021-04-05 12:05:12 · 381 阅读 · 0 评论 -
Spring 常见注解总结
注解:以@开头的具有特定功能的一种标记。 Spring注解等价于xml文件配置,但注解是为了简化xml配置产生的。所有添加注解的类都需要被spring bean加载器扫描到,否则注解无效。@Controller声明在类上,用于标识该类是处理器类。Spring加载时扫描到该注解将在容器创建该类的Bean实例。@Service声明在类上,标识该类为服务类。Spring加载时扫描到该注解将在容器创建该类的Bean实例。@RequestBody声明在方法参数列表里,该注解用于读取Request请原创 2021-04-05 11:54:51 · 193 阅读 · 2 评论 -
SpringBoot 读取配置文件中的值
application.properties中自己写入的一些配置项switchChange=falseMAXLEVEL=03file.path=D:/myfiles从Java代码中读取时写法 /** * 文件路径默认配置 */ @Value("${file.path}") private String path; /** * 设置开关 */ @Value("${switchChange}") private Boolean switchChange; /** *原创 2021-04-05 11:24:34 · 440 阅读 · 0 评论 -
Spring框架 @EnableScheduling 配置定时任务及 cron表达式, fixedDelay 使用和理解
一:主上加注解开启对定时任务的支持(就是创建class 时自己定义的那个类,java文件最外层的名字)主类@Service注解进入Spring 的管理中二:创建任务类 在方法的上方表明注解@Scheduled例如:在如下方法。原创 2021-04-03 19:25:15 · 872 阅读 · 0 评论 -
框架专题 SSM整合
项目架构这里使用jsp为页面,虽然有点老,但是结构上时一致的,可以换为自己的html或者前端jar包1、导入jar包2、写配置文件A、mybatis的配置文件B、Spring的配置文件分为两个,一个是管理dao层的mybatis的配置文件applicationContext-dao.xml,一个是管理service层的配置文件applicationContext-service.xmli、applicationContext-dao.xmlii、applicationContext-原创 2020-09-06 08:43:15 · 95 阅读 · 0 评论 -
框架专题 spring MVC进阶使用总结 + 案例
日期类型的转换自定义的日期转换类配置文件controller的返回值String void ModelAndView(可以把数据传递到页面) 对象spirngmvc的转发和重定向spirngmvc常用的注解@Controller@RequestMapping@responseBody 把对象转json@reuestBody 把json转对象springmvc加载静态资源文件spirngmvc文件的上传和下载需要注意的细节:a、导入上传下载原创 2020-09-05 11:13:28 · 151 阅读 · 0 评论 -
框架专题 spring MVC工作原理 + 入门案例 + web.xml配置乱码过滤
springmvc的工作原理用户发送请求,先传给前端控制器(DispatcherServlet)—> 映射器拦截器(mappingHandler)----> 映射器适配器(mappingAdapter)---->控制器适配器(controllerAdapter)—>控制器(controller)—>前端控制器---->视图解析器(ViewResolver) —> modelAndViewspringMvc的入门案例A、创建一个web项目B、导入jar(在原创 2020-09-05 11:02:49 · 116 阅读 · 0 评论