解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .Spring Security Oauth2 等权限.认证相关的内容.原理及设计学习并整理一遍.本系列文章就是在学习的过程中加强印象和理解所撰写的,如有侵权请告知. 项目环境: JDK1.8 Spring boot 2.x Spring Security 5.x   前期基本上已经…
解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 学习了:https://blog.csdn.net/yunfeng482/article/details/78106433 没想到啊:我都看见了,idea也反编不了: 没想到要重新下载啊:…
如何解决spring boot 项目导入依赖后代码报错问题 2020-08-15  14:17:18 代码截图如图所示(由于本人问题已经解决,没来得及截图,所以在网上找了一张图片)…
Spring Security 解析(六) -- 基于JWT的单点登陆(SSO)开发及原理解析   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .Spring Security Oauth2 等权限.认证相关的内容.原理及设计学习并整理一遍.本系列文章就是在学习的过程中加强印象和理解所撰写的,如有侵权请告知. 项目环境: JDK1.8 Spring boot 2.x Spring Security 5.x  …
问题描述: 在配置文件application.properties中写了 server.port=8081 server.servlet.context-path=/boy name=张三 age=25 2.编写HelloController,获取配置文件中内容并展示 @RestController public class HelloController { @Value("${name}") private String name; @Value("${age}"…
如题,最近使用spring boot集成shiro,在shiroFilter要使用数据库动态给URL赋权限的时候,发现 @Autowired 注入的bean都是null,无法注入mapper.搜了半天似乎网上都没有相关问题,也是奇怪.最后发现 /** * Shiro生命周期处理器 * * @return */ @Bean(name = "lifecycleBeanPostProcessor") public LifecycleBeanPostProcessor getLifecycle…
一,方法中使用try...catch导致@Transactional事务无效的解决方法 1,问题的描述: 如果一个方法添加了@Transactional注解声明事务, 而方法内又使用了try catch 捕捉异常, 则方法内的异常捕捉会覆盖事务对异常的判断, 从而异致事务失效而不回滚 2, 如何解决? 第一个方法:给@Transactional注解增加:rollbackFor后并手动抛出指定的异常 第二个方法:在捕捉到异常后手动rollback 说明:刘宏缔的架构森林是一个专注架构的博客,地址:…
使用spring boot通常使用spring-boot-starter-mail进行邮件的发送.当进行邮件群发的话,如果一个收件人的地址错误,会导致所有邮件都发送失败.因此我们需要在邮件发送失败的时候把错误的收件人移除,重新发送. 当邮件发送失败的时候会抛出MailSendException,异常信息中包含错误的收件人信息. 主要代码如下: private void sendMail(List<String> mailList, MimeMessageHelper message){ try…
在开发rest接口时,我们往往会定义统一的返回格式,列如: { "status": true, "code": 200, "message": null, "data": [ { "id": "101", "name": "jack" }, { "id": "102", "name": &…
Spring Boot(2.1.3.RELEASE)整合spring-data-elasticsearch3.1.5.RELEASE报NoNodeAvailableException[None of the configured nodes are available问题: 具体异常消息: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{NoI2lKCmTa2aqX7uIY…
Spring AOP底层的动态代理实现有两种方式:一种是JDK动态代理,另一种是CGLib动态代理. JDK动态代理 JDK 1.3版本以后提供了动态代理,允许开发者在运行期创建接口的代理实例,而且只能为接口创建代理实例. 如果被代理目标没有接口那么Spring也无能为力,Spring通过Java的反射机制生成被代理接口的新的匿名实现类. JDK动态代理具体实现原理: 通过实现InvocationHandlet接口创建自己的调用处理器: 通过为Proxy类指定ClassLoader对象和一组in…
在开发或学习当中,我们不可避免的会碰到中文乱码的问题(好想哭,但还是要保持微笑!) 今天,在学习spring boot中碰到了中文乱码问题. 首先,看了一下workspace是不是设置utf-8默认字符集: 1)看了下没有,设置工作空间字符集为utf-8默认.(http://www.cnblogs.com/lhns/p/8901968.html) 2)发现没有效果. 3)在传值的地址上限制它的字符集格式: 这时候就显示正常了: 下次再看下有没有关于设置配置文件的修改,再给大家提供下思路.....…
1.安装cas-server-3.5.2 官网:https://github.com/apereo/cas/releases/tag/v3.5.2 下载地址:cas-server-3.5.2-release.zip 安装参考文章:http://blog.csdn.net/xuxuchuan/article/details/54924933 注意: 输入 <tomcat_key> 的密钥口令 (如果和密钥库口令相同, 按回车) ,这里直接回车,也采用keystore密码changeit,否则to…
最近遇到一个问题,服务站点上线之前,先去新建需要的rabbitmq并绑定关系,此时 如果发送消息方运行, 那边会造成新建的q消息部分堆积得不到及时消费 那么问题来了? 在消息堆积情况下,服务站点无法启动,导致一直卡在那里的情况. 而消费端干了什么呢? 1.调用第三方服务查询数据 2.查询数据库数据并更新操作 经过调试我们分析下,在调用第三方服务的时候,卡在那里 了 那么什么原因导致呢? spring在启动的时候,会监听q 执行消费,而消费里面的逻辑代码中的相关组件还没初始化导致. 怎么解决这个问…
1.在pom文件中加入: <!--平滑升级包 开始 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</…
问题描述 在开发中,因某些业务逻辑执行时间太长,我们常使用线程来实现.常规服务实现类中,使用 @Autowired 来注入Bean,来调用其中的方法.但如果在线程类中使用@Autowired注入的Bean,调用方法会抛出ava.lang.NullPointerException异常.过程如下: 注入 @Autowired TtaskSubitemDao taskSubitemDao; 使用 List<TtaskSubitem> taskSubitemList = taskSubitemDao.…
问题截图: 解决方式: 在pom.xml文件中添加这些依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>…
spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化解决方法,改成StringRedisSerializer private RedisTemplate redisTemplate; @Autowired(required = false) public void setRedisTemplate(RedisTemplate redisTemplate) { Redi…
http://slackspace.de/articles/log-request-body-with-spring-boot/ (filter + RequestWrapper:最优雅的写法) https://howtodoinjava.com/servlets/httpservletrequestwrapper-example-read-request-body/(RequestWrapper)https://coderanch.com/t/364591/java/read-request-…
在网上找的demo写了一个小例子,本地开发测试都很正常,但是部署在tomcat就各种坑 1.MyWebSocket不要用spring 注解标注 2.main方法对应的类继承SpringBootServletInitializer,重写configure…
<build> <resources> <resource> <directory>${project.basedir}/src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>static/layuiadmin/layui/font/**</exclude> </excludes…
问题:在自定义拦截器中,使用了@Autowaire注解注入了封装JPA方法的Service,结果发现无法注入,注入的service为空 0.原因分析 拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null 1.需要在拦截器上加@Component package com.fdzang.mblog.interceptor; import com.fdzang.mblog.pojo.*;import com.fdzang.mblog.service.*;import o…
我使用的是springboot+mybatisplus +mysql1.创建一个SpringUtil工具类 import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; public final class SpringUtil im…
1.需要在配置文件重新执行静态文件夹位置即可 # 指定静态文件位置 resources: static-locations: classpath:/static/,classpath:/static/image/ 2.心得 默认的有如下几个 ,设置后会覆盖,因此根据需要设置即可 classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources…
1. 定义拦截器 LoginInterceptor LoginInterceptor.java是整个登录认证模块中的核心类之一,它实现了HandlerInterceptor类,由它来拦截并过滤到来的每一个请求:它的三个方法能分别作用于每个请求的不同生命周期,你可以根据自己的需要来加入相应的处理逻辑 package com.demo.common.interceptor; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.T…
使用th:fragment  定义模板 使用 th:replace  来添加模板到需要的地方. 使用时发现一个非常奇怪的问题. 本机idea 调试环境一切正常, 但是打成jar包以后报错,提示找不到对应的模板文件. 而且只是这个一个,网上查的配置文件和去掉路径前面的"/"都不好使, 最后经过一番折腾发现是我模板的名字在引用的时候大小写有一个字母和模板名字不一样 如图S  字母一个大写一个小写 这样的问题我真的不知道该说什么了 .再次留记.  …
Spring Boot 2.0 升级指南 前言 Spring Boot已经发布2.0有5个月多,多了很多新特性,一些坑也慢慢被填上,最近有空,就把项目中Spring Boot 版本做了升级,顺便整理下升级的时候遇到的一些坑,做个记录.后续的教程就以最新的2.03版本为主.参考官方文档翻译 在你开始之前 2.x 至少需要 JDK 8 的支持,2.x 里面的许多方法应用了 JDK 8 的许多高级新特性,所以你要升级到 2.0 版本,先确认你的应用必须兼容 JDK 8. 另外,2.x 开始了对 JDK…
动态数据源 在很多具体应用场景的时候,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库.又比如业务A要访问A数据库,业务B要访问B数据库等,都可以使用动态数据源方案进行解决.接下来,我们就来讲解如何实现动态数据源,以及在过程中剖析动态数据源背后的实现原理. 实现案例 本教程案例基于 Spring Boot + Mybatis + MySQL 实现. 数据库设计 首先需要安装好MySQL数据库,新建数据库 example,创建example表,用来测…
作者|翟永超 Spring Boot 2.0 来啦,有哪些新特性?升级吗? 写在前面 北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布.作为 Spring 生态中的重要开源项目,Spring Boot 旨在简化创建产品级的 Spring 应用和服务.用户只需要"run"就能创建一个独立的,产品级别的 Spring 应用. 一经发布,Spring Boot 就迅速受到了开发者的亲睐,到目前为止,它已经有超过 2 万个 Star,1.6 万个 fork…
  目前Spring Boot中默认支持的连接池有dbcp,dbcp2, hikari三种连接池.  引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1.  环境描述 Spring Boot 1.4.0.RELEASE,  JDK 1.8 2.   Druid介绍 Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,…