
springboot
自驱
ALOHA HEJA HE
展开
-
springboot实现一个简单的应用,需要集成shiro框架
Apache Shiro是一个强大易用的开源安全框架,用于简化应用程序安全和加强其验证处理,以及控制访问控制行为。它可以让你编写可维护的安全和认证的实现,特别是工作于常见的web应用和JavaEE的环境,但是它也可以应用于其他 java 环境,如Sevlets、Filter、POJO、JNDI、JavaFX和Spring。Shiro通过一个FilterChain实施程序过滤,确定请求的URL是否允许访问,以及处理认证和授权,任何一个Filter可以访问身份验证、认证和授权信息。原创 2023-03-01 21:31:06 · 195 阅读 · 0 评论 -
一致性hash算法---springboot + tair 缓存的实践
// 配置nacos.config.server-addr=172.16.218.224:8848,172.16.218.225:8848,172.16.218.226:8848// 主启动类@SpringBootApplication(scanBasePackages = {"com.xx.yy"})@ImportResource(locations = {"${dubbo.xml}"})@EnableAsync@NacosPropertySource(dataId = "read", a.原创 2021-03-22 17:19:59 · 502 阅读 · 0 评论 -
【@EnableAsync】Spring Async 异步增强源码解析
0 env:Springboot maven 依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.0</version> <relativePath/> <!-- lookup p原创 2020-12-07 09:10:16 · 611 阅读 · 3 评论 -
【@Configuration】再次理解
@SpringBootApplication is a convenience annotation that adds all of the following:@Configuration: Tags the class as a source of bean definitions for the application context.@EnableAutoConfiguration: Tells Spring Boot to start adding beans based o...原创 2020-12-06 17:00:59 · 113 阅读 · 1 评论 -
JSON parse error: Unexpected character (‘%‘ (code 37)): expected a valid value (number, String, arr
1 复现过程 POST + @RequestBody +json格式的数据,不指定数据格式MappingJackson2HttpMessageConverter 读取 application/x-www-form-urlencoded;charset=UTF-8 就会报异常:JSON parse error: Unexpected character ('%' (code 37)): expected a valid value (number, String, array, object, 'tr..原创 2020-11-22 14:38:12 · 17950 阅读 · 0 评论 -
【不懂就画一千零一夜】Spring setter 注入是如何解决循环依赖问题的? 构造注入为啥解决不了循环依赖?
1 注入是如何解决循环依赖问题的? 构造注入为啥解决不了循环依赖?构造注入解决不了:因为构造方法注入的实例,每次都要new一个要构造的实例bean,而A创建时,依赖B,就去创建B,B又依赖了A,继续构造A,如此循环下去 A(B) B(A) A(B)->.... 设值注入:使用三级缓存来解决循环依赖问题;构造的对象使用无参构造方法,会把A先放入二级缓存(前置也会把A的工厂方法放到三级缓存),后面B,会从二级缓存中获取A(中间态)完成属性设置,B就直接进入了一级缓存中,递归会A,最后也进入一级缓存。原创 2020-11-20 14:51:35 · 2138 阅读 · 1 评论 -
org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return va
1 原因:缺失结果输出转换类型;原理很简单。2 追源码返回类型 如下都会失败 @Data public class BaseHomeVO { } 或者 public class BaseHomeVO { } 或者 @Data public class BaseHomeVO implements Serializable { private static final long serialVersionUID = -5728606615570613500L; } 或者 public class Bas原创 2020-11-10 18:26:59 · 7047 阅读 · 0 评论 -
动吧旅游项目 日志模块 part2
功能简介:基于用户名查询信息:在log_list中$(".input-group-btn").on("click",".btn-search",doQueryObjects) 添加方法://处理查询按钮事件 function doQueryObjects(){ //1.定义参数 $("#pageId").data("pageCurrent",1);//设置当前页码值 doGetObjects();//注意log_list和page里面doGetObjects()是原创 2020-08-24 18:00:53 · 294 阅读 · 0 评论 -
动吧旅游 生态系统项目 part 1
产品功能的实现:1.首先实现软件的功能;2.学会控制;3.运维(项目运行时日志的分析,项目的布署,项目的拓展)1. 项目简介1.1概述动吧旅游生态系统,应市场高端用户需求,公司决定开发这样的一套旅游系统,此系统包含旅游电商系统(广告子系统,推荐子系统,评价子系统,商品子系统,订单子系统,…),旅游分销系统(分销商的管理),旅游业务系统(产品研发,计调服务,系统管理,…),,。。。1.2原型分析基于用户需求,进行原型设计(基于html+css+js进行静态页面实现)。例如系统登录页面:(boo原创 2020-08-24 17:59:55 · 735 阅读 · 0 评论 -
京淘项目day14
1.Redis分片机制1.1分片即使说明前提说明:redis可以通过修改内存的大小,实现数据的存储,但是内存的资源不宜设置的过大,因为很多的时间都浪费在内存的寻址上需求: 如果有海量的数据,需要redis存储 问:应该如何处理?解决方案:采用Redis分片机制 实现内存数据的扩容知识点: 采用分片机制 主要的目的就是为了实现内存扩容.从而解决海量数据存储的问题用户在使用分片机制时,将多台redis当做1台使用.redis储存的是不同的数据1.2 Redis分片搭建步骤1.2.1分片节点说原创 2020-08-23 16:21:59 · 200 阅读 · 0 评论 -
京淘项目day13
1.利用Redis实现商品分类的缓存业务当用户点击商品分类按钮时,应该实现缓存查询.思路:1).准备key=“ITEM_CAT::”+parentID2).准备value="JSON"串3).首先查询redis缓存有: 直接获取缓存数据返回给用户.没有: 直接查询数据库,之后将返回值结果保存到redis中,方便下次使用.1.1 编辑ItemCatController@RequestMapping("/list") public List<EasyUITree> find原创 2020-08-23 16:21:38 · 156 阅读 · 0 评论 -
京淘项目day12
1. Redis 缓存机制1.1准备工作1).还原端口号信息2).修改图片上传地址3).修改HOSTS文件4).修改nginx.conf文件修改完成之后,重启nginx服务器.1.2为什么要引入缓存说明:提供用户查询数据的速度.1.3 缓存设计的因素缓存的存储的数据结构应该 K-V结构. key是唯一标识符.缓存的运行环境 应该让缓存运行在内存中.缓存的开发语言 C语言开发缓存中的内存优化策略 LRU算法/LFU算法缓存数据有效性的设定 多久超时如何防止内存数据丢失原创 2020-08-23 16:21:15 · 174 阅读 · 0 评论 -
京淘项目day08
1.实现图片的回显1.1准备虚拟路径@Servicepublic class FileServiceImpl implements FileService { private static Set<String> imageTypeSet = new HashSet<>(); private String localDirPath = "D:/tena/images"; private String urlPath="http://image.jt.c原创 2020-08-23 16:20:53 · 276 阅读 · 0 评论 -
京淘项目Day11
数据库高可用实现:1.搭建数据库主从2.实现数据库读写分离原创 2020-08-23 16:19:45 · 132 阅读 · 0 评论 -
京淘项目day10
远程连接虚拟机失败1.检查双方IP地址是否正常1.检查windows IP地址2.检查Linux的ip时,没有发现IP地址:则重启网卡即可.解决办法1;service NetworkManager stop chkconfig NetworkManager off 永久关闭 Manager网卡service network restart解决办法2://命令1:systemctl restart network //命令2:sudo service networ原创 2020-08-23 16:19:25 · 222 阅读 · 0 评论 -
京淘项目day07
1. 商品得上架/下架操作1.1业务分析当用户点击商品上架/下架的操作时,应该修改数据库中的状态信息status.上架 status = 1, 下架 status = 21.2 页面URL分析1.3 页面JS分析1.4 实现RestFul调用1.4.1 重构页面url地址1.4.2 编辑ItemController/** * 利用restFul方式实现状态修改. * 1./item/1 status=1 * 2./item/2 status=2 */ @Re原创 2020-08-23 16:17:31 · 170 阅读 · 0 评论 -
京淘项目day06
1.商品的CRUD操作1.1关于JS的数据校验说明1.1.1.必填项<td><input class="easyui-textbox" type="text" name="title" data-options="required:true" style="width: 280px;"></input></td>1.1.2价格校验<input class="easyui-numberbox" type="text" name="priceVi原创 2020-08-23 16:17:08 · 142 阅读 · 0 评论 -
京淘项目day04
1.关于项目打包/发布问题说明1.1利用maven工具项目打包说明: 父级JT 其中包含了2个子级项目jt-manager 依赖于jt-common.所以项目打包是有顺序的.打包删除:打包选项:打包完成页面:打包位置a)本地仓库中:b)target目录中:1.3SpringBoot项目发布说明: springBoot项目中,内置了tomcat服务器. 所以发布项目时,只需要通过java命令让程序执行即可.JAVA命令: java -jar xxxxx.jar/war发原创 2020-08-23 16:16:43 · 205 阅读 · 0 评论 -
京淘项目day02
1.SpringBoot程序加强1.1属性赋值问题说明: 如果将配置信息,通过代码的形式写死到代码中,这样的话程序的耦合性高,不便扩展.需求: 能否为对象的属性,动态赋值.package com.jt.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControl原创 2020-08-23 16:15:56 · 204 阅读 · 0 评论 -
【SprinBoot】EnableConfigurationProperties 注解原理和使用(2.0.6版本)
1EnableConfigurationProperties 属性配置启动流程图 EnableConfigurationProperties,在SpringBoot的注释中是这样说明的:为带有@ConfigurationProperties注解的Bean提供有效的支持。这个注解可以提供一种方便的方式来将带有@ConfigurationProperties注解的类注入为Spring容器的Bean。核心: A:ConfigurationPropertiesBeanRegist...原创 2020-07-11 15:20:07 · 1667 阅读 · 0 评论 -
【jenkins】使用pipeline 部署 springboot 微服务集群
1 利用jenkins pipeline部署最终效果图(注意本文涉及到:jenkins安装,部署,插件安装,groovy,ssh插件等较多涉及点)2 准备 已经安装好jenkins的可以直接略过jenkins 安装1 下载 wget -O jenkins https://pkg.jenkins.io/redhat-stable/jenkins-2.235.1-1.1.noarch.rpm2 安装 rpm -ivh jenkins-2.235.1-1.1.noarch.rpm3 修改 vi原创 2020-06-26 21:12:24 · 1564 阅读 · 0 评论 -
SpringBoot @Scheduled 底层实现原理是啥?默认支持并发吗?以延迟任务作为示例,一起看下吧
1首先可以找到任务注册,启动的入口点:可以确定,底层就是是通过线程池实现的。第二:默认支持并发吗?!!!!如果是单线程的话,一个运行周期很长的任务,势必会导致其他任务延迟执行。org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor#finishRegistration ...原创 2020-03-22 16:29:20 · 2892 阅读 · 0 评论 -
你可能猜不到!springboot http请求拦截器Intercepter处理发生异常时会发生什么?500? 404?
图1 DispatchServlet 继承关系图2一次http请求经过的处理类 tomcat ---coyote---catalina---springframework图3 一次http请求经过的处理类 tomcat ---coyote---catalina---springframework图4 catalina 中经过的Filter 调用链 Applicatio...原创 2019-04-20 22:30:04 · 5092 阅读 · 0 评论 -
jenkin 发布失败 没有日志
发布失败1: 例如数据库字段缺失等,导致程序无法启动发布失败2:机器配置导致失败例如GC_PARAM="-Xmx4g -Xms4g -XX:G1HeapRegionSize=2m"但是机器配置没有4G那么多空间! 改成适合大小即可...原创 2018-12-18 19:49:47 · 273 阅读 · 0 评论 -
org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativ
java.lang.NullPointerException: null at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:959) ~[spring-...原创 2018-12-13 15:06:08 · 11142 阅读 · 4 评论 -
【技能库】--Spring (Spring boot)MVC 移动端+PC端 上传图片(182)
@Controller@RequestMapping("pic")public class ImageUploadController { private static final Logger logger = LoggerFactory.getLogger(ImageUploadController.class); private static Pattern pattern原创 2017-04-25 22:21:27 · 1325 阅读 · 0 评论 -
【技能库】--postman json 请求(192)
如下图请求 结构SpringMvc 接受请求格式 @RequestMapping("/submit") @ResponseBody public Data submit(HttpServletRequest request,@RequestBody AnswerResult param) { ResultData success = ResultData.bui原创 2017-05-03 21:38:12 · 828 阅读 · 0 评论 -
【技能库】--Spring Boot + HTTPS 完整示例(177)
1 jdk8+springBoot 下载:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html 修改 JAVA_HOME执行到1.8jdk echo %JAVA_HOME% 检测是否生效 mvn clean package mvn -jar jar包路径2 解决原创 2017-04-20 22:10:19 · 5520 阅读 · 0 评论 -
Error creating bean with name 'feignClientsConfiguration': Injection of autowired dependencies fail
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'feignClientsConfiguration': Injection of autowired dependencies failed; nested exception is java.lang.TypeNotPre...原创 2019-04-14 11:32:54 · 1653 阅读 · 0 评论 -
log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.Standard
log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment)1 原因是使用log4j1,需要从依赖中找到所有的log4j 依赖将其排除!即可解决文章最后给出springboot配置的参考依赖。下图是:是使用...原创 2019-04-14 11:55:30 · 35840 阅读 · 0 评论 -
redis--事务提交后 server端是如何处理并发来的其他请求的?exec multi pipleline
答案:单线程按照指令顺序执行;即 server端执行事务时,其他指令是不能被执行的,注意:请求是可以进来的,只是指令排到事务指令集合的后面。参考redis server端源码;C写;epoll 事件模型;多路复用技术;3个处理模型【请求流程,处理流程,响应流程】测试代码:目的是模拟普通请求和事务型请求并发 @Autowired private RedisCacheUti...原创 2019-04-26 00:39:26 · 323 阅读 · 0 评论 -
【redis】 大key解决方案第一步
背景:redis作为缓存,经常困扰的一个问题就是大key,就是key值过大超过1M或者value过多超过1M个或者总的大小超过1MB。例如:lettuce客户端一直繁忙的处理大key引起的并发症。比如:系统中用了Set集合,每个item的大小是30个字符,即30字节大小,那么,10W条记录和1W条记录对应的Key大小情况如下:100000 * 30 字节 = 3,000,0...原创 2019-04-27 22:44:07 · 2597 阅读 · 0 评论 -
优雅关机 -- springboot 优雅关机tomcat 线程池
import org.apache.catalina.connector.Connector;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;import org.spri...原创 2019-04-29 00:03:32 · 1013 阅读 · 0 评论 -
springboot 统一敏感词过滤 demo
对象序列化前的处理例如springframework框架(responseBody)json 格式:org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyAdviceChain#beforeBodyWrite 中进行对象数据的转换。@ControllerAdvice@Slf4jpublic...原创 2019-04-24 18:33:46 · 3790 阅读 · 1 评论 -
C2 A0 不可见字符到底是什么?半角非中断空格
首先看下 UTF-8 编码 C2 A0 代表的含义:https://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=dec翻译过来就是:半角非中断空格这是什么鬼?长这样,你看到了吗?我没看到原创 2019-04-24 23:48:15 · 5898 阅读 · 0 评论 -
redis pipeline 事务到底怎么回事呢? 怎么执行的?
MULTI,EXEC,DISCARDandWATCHare the foundation of transactions in Redis.They allow the execution of a group of commands in a single step, with two important guarantees: All the commands in a tr...原创 2019-04-25 11:47:27 · 824 阅读 · 0 评论 -
【为什么跨域请求】无任何返回?使用WebMvcConfigurerAdapter 配置拦截器和跨域拦截器的默认执行顺序?
key method: org.springframework.web.servlet.HandlerMapping#getHandler /** * Return a handler and any interceptors for this request. The choice may be made * on request URL, sessi...原创 2019-07-13 01:12:13 · 681 阅读 · 0 评论 -
【未来库】--Spring boot Start(176)
http://www.mkyong.com/spring-boot/spring-boot-hello-world-example-thymeleaf/原创 2017-04-19 18:45:59 · 778 阅读 · 0 评论