202103-05 解决springboot遇到autowire注入为null的问题 这个问题困扰了很久,有些类不是controller在使用autowired注入的类显示为空,找到网上的方法是在类初始化时主动注入被Autowired的类,如下图这样的方法是可行的,最后引用时使用上图中doubleTeachSendMsg.doubleTeachService.sendMsg();方法即可,但是使用起来未免太麻烦,而且也不是spring依赖注入的原则,这个出现原因其实就是此类是在bean加载之前被调用,或者springboot在加载时没有识别到此类,所以注入为空,要想使此类被识... 继续阅读 >
202103-05 SpringBoot Test类注入失败的解决 如下所示本来bookService的引用一直是null。导致每次测试都报空指针异常。然后现在继承相应的ApplicationTests类,然后使用@Component将该类注册为组件。就可以正常注入了。补充:关于springboottest@Mapper,@Autiwired注入无效的问题@SpringBootTest()@RunWith(SpringRunner.class)publicclassProductMapperTest{@AutowiredProductMapperproductMapper;为了给mapper接口自动根据一个添加@Mapper注解的接口生成一个... 继续阅读 >
202103-05 解决SpringBoot 测试类无法自动注入@Autowired的问题 原来的测试类的注解:@RunWith(SpringRunner.class)@SpringBootTest一直没法自动注入,后来在@SpringBootTest,加入启动类Application后就可以了@RunWith(SpringRunner.class)@SpringBootTest(classes=Application.class)补充:springboot项目单元测试时,@Autowired无法注入Service解决方式首先确认:测试类所在包名要和启动类一致测试类注解正确@SpringBootTest(classes={BiDataTaskApplication.class})@RunWith(SpringRunn... 继续阅读 >
202103-02 springboot-jpa的实现操作 JPA全称为JavaPersistenceAPI(Java持久层API),它是Sun公司在JavaEE5中提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具,来管理Java应用中的关系数据,JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作。JPA对于单表的或者简单的SQL查询非常友好,甚至可以说非常智能。他为你准备好了大量的拿来即用的持久层操作方法。甚至只要写findByName这样一个接口方法,他就能智能的帮你执... 继续阅读 >
202103-02 Springboot-注解-操作日志的实现方式 此组件解决的问题是:「谁」在「什么时间」对「什么」做了「什么事」本组件目前针对Spring-boot做了Autoconfig,如果是SpringMVC,也可自己在xml初始化bean使用方式基本使用maven依赖添加SDK依赖<dependency><groupId>io.github.mouzt</groupId><artifactId>bizlog-sdk</artifactId><version>1.0.1</version></dependency>SpringBoot入口打开开关,添加@EnableLogRecord注解tenant是代表租户的标识,一般一个... 继续阅读 >
202102-28 SpringBoot 设置传入参数非必要的操作 我就废话不多说了,大家还是直接看代码吧~设置参数是否为必要参数@RequestParam(required=false)补充:SpringBoot开发案例之参数传递的正确姿势前言开发这么多年,肯定还有不少小伙伴搞不清各种类型的参数是如何传递的,很多同学都是拿来即用,复制粘贴一把撸,遇到问题还是一脸懵逼。姿势学习参数传递的正确姿势,先说怎么做,再说为什么,本质上还是复制粘贴一把撸,问题是你想问不想问为什么!传递用户登录前端代码:varpa... 继续阅读 >
202102-28 Springboot返回的json屏蔽某些属性的操作 entity上增加@JsonIgnoreProperties注解,标记需要忽略的属性,支持多个@Entity@JsonIgnoreProperties(value={"status","updateTime"})publicclassGoldSellimplementsSerializable{还有一种方式,直接注解在具体的property上,效果一样@JsonIgnoreprivateIntegerstatus;不过这两种都是影响属性,会影响所有的接口,如果有的接口需要有的不需要呢?补充:springboot请求返回json数据指定字段不返回我就废话不多说了,大家还... 继续阅读 >
202102-26 SpringBoot 整合 Shiro 密码登录与邮件验证码登录功能(多 Realm 认证) 导入依赖(pom.xml)<!--整合Shiro安全框架--><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.0</version></dependency><!--集成jwt实现token认证--><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.2.0</version></dependency>在SpringBoot项目配置config包下创建ShiroConfig配置类@Configurati... 继续阅读 >
202102-26 SpringBoot 整合 Shiro 密码登录的实现代码 导入依赖(pom.xml)<!--整合Shiro安全框架--><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.0</version></dependency><!--集成jwt实现token认证--><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.2.0</version></dependency>创建ShiroConfig配置类@Configurationpubli... 继续阅读 >
202102-26 SpringBoot 文件或图片上传与下载功能的实现 导入依赖(pom.xml)<!--上传下载需要设计到的jar包--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency><!--servlet-api导入高版本的--><dependency><groupId>javax.servlet</gr... 继续阅读 >
202102-26 SpringBoot的WebSocket实现单聊群聊 本文实例为大家分享了SpringBoot的WebSocket实现单聊群聊,供大家参考,具体内容如下说在开头在HTTP协议中,所有的请求都是由客户端发送给服务端,然后服务端发送请求要实现服务器向客户端推送消息有几种methods:1、轮询大量无效请求,浪费资源2、长轮询有新数据再推送,但这会导致连接超时,有一定隐患3、Applet和Flash过时,安全隐患,兼容性不好消息群发创建新项目:添加依赖:<dependency><groupId>org.springframework.boot... 继续阅读 >
202102-26 SpringBoot+Prometheus+Grafana实现应用监控和报警的详细步骤 背景SpringBoot的应用监控方案比较多,SpringBoot+Prometheus+Grafana是目前比较常用的方案之一。它们三者之间的关系大概如下图: 开发SpringBoot应用首先,创建一个SpringBoot项目,pom文件如下:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-st... 继续阅读 >
202102-26 基于 SpringBoot 实现 MySQL 读写分离的问题 - 前言 -首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段?常用的实现方法有以下几种:读写分离、加缓存、主从架构集群、分库分表等,在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库。主库的职能是负责写,从库主要是负责读,可以建立读库集群,通过读写职能在数据源上的隔离达到减少读写冲突、 释压数据库负载、保护数据库的目的。在... 继续阅读 >
202102-26 五分钟教你手写 SpringBoot 本地事务管理实现 白菜Java自习室涵盖核心知识1.SpringBoot事务一直在用SpringBoot中的@Transactional来做事务管理,但是很少没想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事务的,最后我们结合源码的理解,自己动手写一个类似的注解来实现事务管理,帮助我们加深理解。1.1.事务的隔离级别事务为什么需要隔离级别呢?这是因为在并发事务情况下,如果没有隔离级别会导致如下问题:脏读(Dirty... 继续阅读 >
202102-26 SpringBoot 配置 okhttp3的操作 1.Maven添加依赖<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.10.0</version></dependency>2.application.properties配置文件ok.http.connect-timeout=30ok.http.read-timeout=30ok.http.write-timeout=30#连接池中整体的空闲连接的最大数量ok.http.max-idle-connections=200#连接空闲时间最多为300秒ok.http.keep-alive-duration=3003.OkHttpConfiguration配置类... 继续阅读 >
202102-23 详解如何为SpringBoot项目中的自定义配置添加IDE支持 导言代码是写给人看的,不是写给机器看的,只是顺便计算机可以执行而已——《计算机程序的构造和解释(SICP)》导言在我们的项目里经常会出现需要添加自定义配置的应用场景,例如某个开关变量,在测试环境打开,在生产环境不打开,通常我们都会使用下面的代码来实现,然后在SpringBoot配置文件中添加这个key和ValueApplication.java:application.properties或者是没有使用@Value而直接在XML中使用我们配置的属性值application.x... 继续阅读 >