springboot
185的阿平
集中起来的力量可以击穿顽石
展开
-
springboot中非容器类获取配置文件数据
如果是被spring容器所管理,一般采用@Value注解就可以读取到application.yml文件的内容。但是不被spring容器管理,使用@Value是无效的。注入时会是NULL。但就是会有这样的场景,此时可采用在springboot启动类中将环境注入到某一个公共配置类,该类所有属性为公共静态属性攻外部类直接使用。@SpringBootApplicationpublic class DemoStarterTestApplication { public static void ma原创 2022-04-22 16:53:35 · 2458 阅读 · 1 评论 -
No active profile set, falling back to default profiles: default问题
这个问题出现在多环境配置切换时,springboot会提供一个active指定编译时加载哪个配置文件。spring: profiles: active: dev有时候明明指定了active确发现还是不生效,走了默认的配置。如果有些业务参数时放在配置文件中的就会报Could not resolve placeholder 'CM3.WORKING_DIR' in value "${CM3.WORKING_DIR}" 类似这种错误。 但这类问题一般在配置文件层面检查能查出。今天一问题.原创 2021-12-04 18:15:58 · 2007 阅读 · 0 评论 -
springboot中的controller层增加事务控制
大多数编程者习惯会在service层加事务控制,当一个controller层调用了多个service的update或者insert方法时,第一个成功了,第二个失败了。那么就会有第一个的事务会回退吗的困惑。其实通过在方法上@Transactional注解就可以控制。但在controller中不要使用try catch被捕捉了就不会回退事务。反正自己动手试试就知道。controller //可行 @PostMapping("/updateCustTel") @Transactional原创 2021-11-27 16:44:17 · 6661 阅读 · 0 评论 -
springboot启动临时文件目录位置及修改
Windows:C:\Users\登录用户~1\AppData\Local\Temp\Linux:/tmp一般在虚拟机上会出现权限问题,就需要自己指定有操作权限的目录。如 :nohup java -jar A.jar 这样会自动找/tmp去创建临时目录。如果没权限会报错org.springframework.boot.web.server.WebServerException: Unable to create tempDir. java.io.tmpdir is set to /tm...原创 2021-10-11 15:55:20 · 4354 阅读 · 0 评论 -
rabbitMQ延迟队列实战
本次延迟队列场景,先发一个消息到队列,这个队列没有消费者,这个队列延迟n秒后,会进入下一个逻辑处理。本次逻辑是消息会进入死信队列消费。上代码maven<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifa原创 2021-08-25 18:25:58 · 193 阅读 · 0 评论 -
实现ResponseBodyAdvice接口进行返回报文封装(脱敏)
今收到需求需要对所有接口的返回报文中含有敏感信息的字段进行加密处理,大概有100多个接口。肯定会优先想到用AOP切面实现。但AOP里头只能用环绕通知去实现,像后置及后置返回通知都是在方法执行后的通知(后置无法收到返回报文,后置返回可收到但是已返回到前端)显然不合适。环绕通知用过的话其实会发现有点性能问题。并且对于它是可以影响原来的返回格式的。所以用一种新的方式去实现,使用ResponseBodyAdvice实现。基本API用法很简单,本文嵌入了一些业务逻辑及设计思路。需求有7类场景进行脱敏,每个场景不同原创 2021-07-30 16:11:03 · 1254 阅读 · 1 评论 -
Aop记录日志实践(获取请求参数&返回参数&环绕通知)
先贴一个标准Demo自定义注解或者代码中配置自己扫描的类或方法。个人觉得注解更加方便些。原创 2021-05-31 19:02:01 · 3661 阅读 · 2 评论 -
springboot集成swagger生成接口文档
效果图maven中引入jar包,不同版本的swagger可能页面效果不一样。<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.1</version> </depende原创 2021-05-24 18:31:36 · 288 阅读 · 2 评论 -
springcloud-Alibaba使用Nacos实现服务注册调用
下载nacos,找到bin目录下startup.cmd启动nacos。正常启动如图,默认端口8848idea中建立springboot服务提供者工程,依赖如下<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactI.原创 2021-02-20 17:35:09 · 250 阅读 · 0 评论 -
java根据模板生成word文件
准备word模板,将里面需要写入的内容以${变量名}形式表现。如图保存word。另存为xml格式文件。将model.xml更改后缀名改为model.ftl。这个文件我存在在E盘的根目录。等下需要加载该文件,所以文件路径尽量不要带中文。代码工作,首先引入依赖<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifa.原创 2020-11-20 11:40:56 · 579 阅读 · 0 评论 -
@Async失效及Spring循环依赖报错问题分析
今日写代码发现了@Async注解的方法放在@Service的类中,不能异步执行。于是排查找了下原因。我是直接在类中定义了一个异步方法。然后直接在该类中的其他方法调用。问题分析:跟spring注册bean的过程有很大关系,首先调用这个方法如果不是静态类的,肯定是有个隐式对象去调用。在这个类中(命名为A,实例对象为a)。则应该是a.issueRecharge()方法调用,这里的a其实就是spring管理的一个bean。相当于A类在spring容器初始化加载在设置属性是要把a设置进去,自己依赖自己就是原创 2020-11-18 15:54:42 · 717 阅读 · 0 评论 -
远程WWW服务支持TRACE请求(tomcat漏洞修复及测试方案)
近期主机安全扫描除了安全漏洞,如图看到该问题的第一思路,找到具体端口号对应的应用。主机配置httpd服务信息。最终发现主机上并未开启httpd服务。应用是基于tomcat发布的,并且为springboot的内嵌tomcat。意思就是说跟主机侧无关,需要调整应用侧代码。于是百度tomcat传统形式通过配置web.xml达到禁止不安全的http方法 <security-constraint> <web-resource-collection...原创 2020-06-10 16:29:53 · 5486 阅读 · 2 评论 -
springboot拦截器使用 登录拦截 重定向次数过多的解决方法
完成请求拦截也非常简单。思路和解决方案,代码以及重定向次数过多问题如下。 (1)对请求的url进行过滤,可以使用过滤器去实现IP黑白名单。(2)通过session的getAttribute()方法取对应属性进行非空判断,空的话进行拦截(3)使用token方式进行请求权限认证主讲第二种方法:场景为登录场景。先理清下思路。什么时候进行拦截?(session为空时)。怎么知道s...原创 2019-03-16 11:25:32 · 17475 阅读 · 5 评论 -
springcloud入门 基本组件认识
注册中心:RPC框架核心,用来管控治理服务。常用Eureka,Consul,Zookeeper等。CAP定理 C数据一致性 A服务可用性 P服务对网络分区故障的容错性Eureka是AP原则。Consul为AC原则。Zookeeper为CP原则 配置中心:作为分布式配置中心,所有全局用的值放在配置文件。可支持本地,git,svn等。引入配置中心最理想的操作,修改配置,不用重启...原创 2019-02-19 10:59:25 · 179 阅读 · 0 评论 -
在springboot中整合jsp做视图层,一直404解决方法
总结Springboot加载jsp页面的几种错误。启动方式不对(网上说法)不能直接从aplication启动。需要从maven中启动。这种说法我404时试了,对我的没用。 依赖包未引入<dependencies> <dependency> <groupId>org.springframework.boot&l...原创 2019-02-27 16:38:02 · 2195 阅读 · 1 评论 -
mybatis语法入参为Integer和Date类型的问题
在mybatis中,编写sql语句带判断的情况下<if>标签。许多时候入参都是String的,所以就有很标准的写法。<if test ="a != null and a !=' ' ">执行语句</if>当传入值的类型不为String类型时,这样写就要有考虑了。上图:java中controller类接收前台传值,有Integer类型传入,可以查...原创 2019-01-10 12:05:57 · 2670 阅读 · 0 评论 -
springboot整合mybatis实现增删改查流程以及易错点
Springboot+mybatis+mysql实现增删改查操作。在昨天学习的springboot的入门程序上进行扩展开发。首先建立好项目目录结构,如图:整个流程类似ssm整合,controller—》service—》dao ,接口访问xml。这个写完的结构如下: 里面具体源码跟ssm写的差不多,我大概贴出一些这是入口,@MapperScan注解是扫描mapper接口...原创 2018-09-29 10:49:49 · 10740 阅读 · 0 评论 -
springboot中@RequestBody注解入参时为空的原因及处理方式
上次发博客已经是一个月前,作为一个实习期没毕业的学生,忙于找份实习工作,差点忘了有博客。。今天上博客发现自己写的文章还是帮助了一些人,激发了我写文章的动力。我分享的基本是在程序中自己实战出错的,欢迎大家评论指导!今天springboot项目在接受参数的过程中,@RequestBody注释映射对象时。会出现空指针异常,找不到对象,同样的做测试时传入string类型也会找不到。 代码如...原创 2018-09-29 10:24:03 · 28143 阅读 · 0 评论