![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 55
LiZhen798
软件研发工程师
语言:Java,Go
展开
-
springboot项目yml文件中${}的使用
如果启动项目是传入了SERVER_PORT值时,会优先使用传入的值作为端口号启动项目,如果没有传该环境变量的值时,就使用9600作为项目端口号;可以看到虽然配置文件中虽然还是9600,但是项目启动的端口号是使用刚才配置的9601来启动的;项目启动时可以灵活的通过修改环境变量来替换配置中的值,如果没有传该环境变量时,就是用默认值;可以看到使用的默认值9600端口启动的项目;到此就将端口号换成了9601了,来看看效果。在idea中修改环境变量。没有进行环境变量配置。原创 2024-03-21 11:31:42 · 873 阅读 · 0 评论 -
父类的@Autowired字段被继承后能否被注入
子类中已经被注入的了父类的@Autowired 属性。父类:Animal.class。子类:Dog.class。原创 2023-12-04 11:31:11 · 552 阅读 · 0 评论 -
springboot的post application/x-www-form-urlencoded请求大小2MB限制
Springboot默认web容器是tomcat,tomcat关于post请求参数长度有默认限制为2MB原创 2022-09-28 18:24:34 · 1831 阅读 · 0 评论 -
@Pointcut语法详解
@Pointcut语法详解原创 2022-08-02 20:12:49 · 1544 阅读 · 0 评论 -
@PostMapping接收方式
@RequestBody 和 @RequestParam1.@RequestParam(可以有多个)可以接收单个参数传递(必须有对应的名字)@ApiOperation("transmit") @PostMapping("/transmit") public Result transmit(@RequestParam(required = false) @ApiParam(value = "id")String id ,@ApiParam(value = ...原创 2022-05-31 16:09:38 · 10711 阅读 · 0 评论 -
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Context
解决方案:注解上加上@SpringBootTest(classes = 注入的类.class)如下运行正常原创 2022-03-01 17:48:27 · 269 阅读 · 0 评论 -
idea自动生成mybatis实体类xml文件
添加mysql下面提供两个找到DataBase位置的方法设置mysql数据连接生成实体和mapper,xml文件找到要生成的表,右键配置如下点击ok就生成好了原创 2022-02-28 11:40:52 · 3356 阅读 · 3 评论 -
idea2021版本后项目运行报错——Error running xxx : Command line is too long.Shorten command line ..解决方法
在IDEA 运行有时会报:错误原因 出现这个的原因一般是因为项目需要打印的环境变量太长,超过了限制,需要你缩短命令行来解决问题。解决方法:2021版本前的修改此次就可以了2021版本开始1、找到项目里面的idea/workspace.xml文件。2、找到<component name="PropertiesComponent"></component >标签。再在component 标签里加一行 <property name="dyn..原创 2021-11-17 15:56:55 · 4909 阅读 · 0 评论 -
事务传播机制REQUIRES_NEW,在嵌套事务中不起作用的解决方法
事务传播机制REQUIRES_NEW的官方文档中是这样解释的:Create a new transaction, and suspend the current transaction if one exists.翻译为创建一个新事务,如果当前存在事务,则挂起当前存在的事务。总结下REQUIRES_NEW有两层含义:1.REQUIRES_NEW会开启新事务,外层事务不会影响内层事务的提交和回滚操作2.REQUIRES_NEW如果内层事务出现异常,则外层事务也会同样进行回滚操作...原创 2021-10-27 14:42:14 · 1425 阅读 · 0 评论 -
@EnableAspectJAutoProxy 等注解的作用
一、@EnableDiscoveryClient及@EnableEurekaClient的异同:共同点:都是能够让注册中心能够发现,扫描到该服务。不同点:@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient可以是其他注册中心。说明:从Spring Cloud Edgware开始,都可省略。只需加上相关依赖,并进行相应配置,即可将微服务注册到服务发现组件上。Eureka 2.0闭源之后,Consul慢慢会成为主流。二、@Ena原创 2021-09-26 19:14:03 · 7591 阅读 · 0 评论 -
SpringCloud的@LoadBalanced注解使用的理解
在使用springcloud ribbon客户端负载均衡的时候,可以给RestTemplate bean 加一个@LoadBalanced注解,就能让这个RestTemplate在请求时拥有客户端负载均衡的能力:@Bean@LoadBalanced //开启负载均衡的功能RestTemplate restTemplate() { return new RestTemplate();}@LoadBalanced的注解源码:/** * Annotation to mark a原创 2021-08-26 18:24:27 · 704 阅读 · 0 评论 -
拦截器的执行顺序
1. 依次建立3个拦截器public class BootInterceptor implements HandlerInterceptor { /* 1 */ public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object arg2) { StackTraceElement se = Thread.currentThread().getStackTrace()[1..原创 2021-08-26 12:44:27 · 469 阅读 · 0 评论 -
spring事务嵌套及回滚
Spring事务嵌套的相关问题:外层事务 Service A 的 Method A() 调用 内层Service B 的 Method B()原创 2021-05-28 20:22:03 · 2331 阅读 · 3 评论 -
spring的嵌套事务问题
目录线上问题:事务注意事项总结:线上问题:仔细分析了抛出的异常,发现异常为SocketTimeoutException,查阅事务回滚时需要的异常,发现默认事务只对error和runtimeException异常会进行回滚,其他异常不会回滚,https://www.cnblogs.com/tianyuchen/p/6678084.html加上@Transactional(rollbackFor=MyException.class)后事务会捕捉到此类异常,在Spring里,同原创 2021-03-25 20:55:44 · 323 阅读 · 0 评论 -
为什么@Transactional加在private上无效(源码)
1. 先找到这个注解:2. 会自动加载这个类3. 默认为mode = PROXY, 进入这个类4. ProxyTransactionManagementConfiguration 类5. 看TransactionInterceptor 类6. invokeWithinTransaction 方法7. 发现没有找到注入的类8. 找到父类9. 找到实现方法10. 看到对目标方法是public的校验11. 得出结果,为什么@Transactional加在原创 2021-03-17 20:29:31 · 1485 阅读 · 0 评论 -
Spring @Transactional踩坑记
目录@Transactional踩坑记总述踩坑记1. 多数据源2. 内部调用填坑总结参考链接@Transactional踩坑记总述 Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@Transactional注解,实现事务控制。 然而看起来越是简单的东西,背后的实现可能存在很多默认规则和限制。而对于使用者如果只知道使用该注解,而不去考虑背后的限制,就可能事与愿违,到时候线上出了问题可能根本都找不出啥原因转载 2021-03-17 20:25:09 · 257 阅读 · 0 评论 -
Spring事务和缓存导致的数据不一致问题
目录一、问题现象二、初步分析三、问题定位四、解决方案五、问题发酵六、最终方案七、总结一、问题现象 核心系统进行交易时,偶现交易日期与日切日期不一致的情况。二、初步分析 1、日切日期统一由日切服务维护,每次交易前,会先调用日切服务获取当前日切日期,因此,问题源头应在日切服务; 2、因为日切服务只做简单的更新和查询操作,而且不一致的情况属于偶现,所以不应该是日切的功能出现异常; 3、日切服务维护了日切日期的缓存,...原创 2021-03-17 17:55:25 · 1155 阅读 · 0 评论 -
深入理解 Spring 事务原理
一、事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获取连接 Connection con = DriverManager.getConnection() 开启事务con.setAutoCommit(true/false); 执行CRUD 提交事务/回滚事务 con.commit() / con.rollback(); 关原创 2021-03-16 17:23:37 · 483 阅读 · 0 评论 -
拦截器和过滤器的区别
目录过滤器和拦截器的区别:触发时机总结过滤器和拦截器的区别:拦截器是基于java的反射机制的,而过滤器是基于函数回调。 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。 拦截器可以获取IOC容器中的各个bean,而过滤器就不行,原创 2021-03-11 20:18:21 · 89 阅读 · 0 评论 -
RestTemplate返回值中文乱码问题
目录问题排查问题修改问题:测试:问题在使用RestTemplate方法:postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)返回的中文乱码,如下:排查问题查看RestTemplate的构造函数,发现StringHttpMessageConvert默认的编码是ISO-8859-1,源码如下:修改问题:原创 2020-05-18 21:00:19 · 2845 阅读 · 0 评论