202203-09 Vue+SpringBoot前后端分离中的跨域问题 在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议、域名、端口号不同等),导致不能正常调用api接口,给开发带来不便。封装api请求importaxiosfrom'axios'//axios.create创建一个axios实例,并对该实例编写配置,后续所有通过实例发送的请求都受当前配置约束const$http=axios.create({baseURL:'',timeout:1000,//heade... 继续阅读 >
202203-09 springboot 设置server.port不生效的原因及解决 springboot设置server.port不生效近年来,springboot以其快速构建方便便捷,开箱即用,约定优于配置(ConventionOverConfiguration)的特性深受广大开发者喜爱。springboot已经集成配置好了一套web开发的默认配置,开发者可以无需修改任何配置即可开始一个web工程,但是实际情况中有时候开发者还是需要修改部分默认配置项来使其更加契合自己的项目需求。下面就其中一个小问题做个记录在配置服务启动的端口时,springboot默认在a... 继续阅读 >
202202-28 Springboot整合PageOffice 实现word在线编辑保存功能 目录一、查看官网二、查看下载包三、测试 四、gitee地址一、查看官网http://www.zhuozhengsoft.com/点击首页下载,进入页面:最新得5.2,我们就下载5.2版本进行测试。二、查看下载包Samples5为示例文件。放入tomcat中得webapps可以直接访问。localhost:8080/Samples5/index.html集成文件里面有我们需要jar包新建springboot项目以及简单测试这里就不多说了。1、springboot引入pageoffice5.2.0.12.jar2、springboot引入thy... 继续阅读 >
202202-28 springboot如何使用@ConfigurationProperties封装配置文件 使用@ConfigurationProperties封装配置文件业务场景:把配置文件的信息,读取并自动封装成实体类,可以使用@ConfigurationProperties,把同类的配置信息自动封装成实体类。1、在pom.xml中添加依赖包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>2、创建配置文件(application.properties)wx.appid... 继续阅读 >
202202-26 springboot bootcdn使用示例详解 应用:直接使用bootcdn提供的静态资源,不需要本地存储bootcdn官网:https://www.bootcdn.cn/staticfilecdn官网:http://www.staticfile.org/常用静态资源#layui.jshttps://cdn.bootcdn.net/ajax/libs/layui/2.6.8/layui.jshttps://cdn.bootcdn.net/ajax/libs/layui/2.6.8/layui.min.js#layui.css//unpkg.com/layui@2.6.8/dist/css/layui.csshttps://www.layuicdn.com/layui-v2.6.8/css/layui.css#jqueryhttps://cdn.bootc... 继续阅读 >
202202-12 SpringBoot @ModelAttribute使用场景分析 前言项目中遇到这么一个使用场景,用户的登录信息给予token保存,在需要有登录信息的地方,每次都要去获取用户Id,但每次在请求方法中去获取用户信息,代码重复,冗余,很low于是想到了用@ModelAttribute这个属性@ModelAttribute有三种用法:-可以标注在方法上;-可以标注在方法中的参数上;-还可以和@RequestMapping一起标注在方法上;使用场景不用@ModelAttribute时候在需要用户信息的请求中每次需要单独获取用户信息String... 继续阅读 >
202202-12 springboot 如何修改默认端口及application.properties常用配置 springboot修改默认端口及application.properties常用配置Springboot默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入:server.port=9090其他常用配置:(一)、server配置server.address#指定server绑定的地址server.compression.enabled#是否开启压缩,默认为false.server.compression.excluded-user-agents#指定不压缩的user-agent,多个以逗号分隔,默认值为:text/html,tex... 继续阅读 >
202202-12 springboot log4j2不能打印框架错误日志的解决方案 springbootlog4j2为什么不能打印框架错误日志问题使用springboot时老的框架使用的是log4j2,为了兼容不能够使用logback,按照网上的教程导入了log4j2但是不能够输入框架错误日志,例如bean命名重复,springmvcurl映射重复,这些都是开发中所需要的友好提示解决方案怎么出现的问题,就不详细描述了,原因是我引入的log42是散件不是基于springboot集成配置的,导致只能够输出基本信息,原理我会在一个月后左右探究完毕补充。下面... 继续阅读 >
202202-11 浅谈springboot一个service内组件的加载顺序 springbootservice内组件加载顺序先加载自身构造器,所以在构造器中初始化时若使用需要注入的(即@Autowired注解的)组件相关的方法,则会报null;然后加载注入的组件即@Autowired最后加载@PostConstruct注解的方法,在该方法内可以使用注入的组件。一个service初始化的一些操作根据不同情况可以选择在不同的地方进行初始化Springboot配置文件加载顺序springboot启动会扫描以下位置的application.properties或者application.y... 继续阅读 >
202202-11 史上最佳springboot Locale 国际化方案 目录1、国际化资源2、编写配置3、用法详解4、测试1、国际化资源使用IDEA创建资源组2、编写配置application.yml增加国际化目录配置增加配置类从请求头获取多语言关键字/***国际化配置**@authorLionLi*/@ConfigurationpublicclassI18nConfig{@BeanpublicLocaleResolverlocaleResolver(){returnnewI18nLocaleResolver();}/***获取请求头国际化信息*/staticclassI18nLocaleResolverimplementsLocale... 继续阅读 >
202202-11 使用spring boot 整合kafka,延迟启动消费者 springboot整合kafka,延迟启动消费者springboot整合kafka的时候一般使用@KafkaListener来设置消费者,但是这种方式在spring启动的时候就会立即开启消费者。如果有需要根据配置信息延迟开启指定的消费者就不能使用这种方式。参考了类:KafkaListenerAnnotationBeanPostProcessor,我提取了一部分代码。可以根据需要随时动态的开启消费者。还可以很方便的启动多个消费者。为了方便使用,我自定义了一个注解:importorg.springfra... 继续阅读 >
202202-10 SpringBoot之自定义启动异常堆栈信息打印方式 在SpringBoot项目启动过程中,当一些配置或者其他错误信息会有一些的规范的提示信息***************************APPLICATIONFAILEDTOSTART***************************Description:Webserverfailedtostart.Port8080wasalreadyinuse.Action:Identifyandstoptheprocessthat'slisteningonport8080orconfigurethisapplicationtolistenonanotherport.在SpringBoot中其实现原理是什么,我们该如何自定义... 继续阅读 >
202202-10 springboot 中 inputStream 神秘消失之谜(终破) 序言最近小明接手了前同事的代码,意料之外、情理之中的遇到了坑。为了避免掉入同一个坑两次,小明决定把这个坑记下来,并在坑前立一个大牌子,避免其他小伙伴掉进去。HTTPClient模拟调用为了把这个问题说明,我们首先从最简单的http调用说起。设置body服务端服务端的代码如下:@Controller@RequestMapping("/")publicclassReqController{@PostMapping(value="/body")@ResponseBodypublicStringbody(HttpSe... 继续阅读 >
202202-10 springboot+WebMagic+MyBatis爬虫框架的使用 目录1.添加maven依赖2.项目配置文件application.properties3.数据库表结构4.实体类5.mapper接口6.CrawlerMapper.xml文件7.知乎页面内容处理类ZhihuPageProcessor8.知乎数据处理类ZhihuPipeline9.知乎爬虫任务类ZhihuTask10.Springboot程序启动类WebMagic是一个开源的java爬虫框架。WebMagic框架的使用并不是本文的重点,具体如何使用请参考官方文档:http://webmagic.io/docs/。本文是对springboot+WebMagic+MyBatis做了整合,... 继续阅读 >
202201-22 SpringBoot @NotBlank错误的解决方案 SpringBoot@NotBlank错误java验证出现如下错误:javax.validation.UnexpectedTypeException:HV000030:Novalidatorcouldbefoundforconstraint错误原因Java实体类中属性是Integer类型,用了NotBlank判断不能为空,而这个注解是判断字符串是否为空解决办法去掉@NotBlank注解、使用@NotNull@NotBlank注解地正确使用@NotNull:不能为null,但可以为empty@NotEmpty:不能为null,而且长度必须大于0@NotBlank:只能作用在String... 继续阅读 >
202201-12 springboot+mybatis-plus+oracle实现逻辑删除 最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现:1、用户实体类packagecom.sie.demo.entity;importcom.alibaba.fastjson.annotation.JSONField;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableLogic;importcom.baomidou.my... 继续阅读 >