(一)引言在平常的编码之中,有一个错误总会在你的意料之外出现,那就是空指针异常。空指针的出现也很简单,你得到了一个null对象,调用了一些方法,出现空指针异常。空指针会出现在各种地方,常见的比如Map.get()没有获取到对象就调用对象例的方法,类对象没有获取到就调用类中的方法。空指针的处理方式也很多,最简单的方式就是用if/else判空,但是这样就会显得代码特别繁琐。这篇文章就带你用JDK8中的
1、spring中@Param(org.springframework.data.repository.query.Param)int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long2、mybatis中param(org.apache.ibatis.annotations.Param)i
在Spring Boot2.0以上配置嵌入式Servlet容器时EmbeddedServletContainerCustomizer类不存在,经网络查询发现被WebServerFactoryCustomizer替代.Spring Boot 1.0中:通用配置举例@Component public static class CustomServletContainer implements E
对于日常的web开发而言,像css、js、images、font等静态资源文件管理是非常的混乱的、比如jQuery、Bootstrap、Vue.js等,可能每个框架使用的版本都不一样、一不注意就会出现版本冲突或者重复添加的问题。所以找到了一个叫做WebJars的技术,下面我将介绍如何将静态资源打包成jar。原本我们在进行web开发时,一般上都是讲静态资源文件放置在webapp目录下,在Spring
前言我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目。由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。例如我想要在SpringBoot项目中集成Redis,那么我只需要加入spring-data-redis-starter的依赖,并简单配置一下连接信息以及Jedis连
在Maven中依赖的域有:compile、provided、runtime、system、test、import一、compile(默认)当依赖的scope为compile的时候,那么当前这个依赖的包,会在编译的时候被加入进来,并且在打包(mvn package)的时候也会被加入进来。编译范围有效,在编译与打包时都会加入进去。二、provided当依赖的scope为provided的时候,在编译和
测试环境 maven 3.3.9想必大家在做SpringBoot应用的时候,都会有如下代码:[html] view plain copy1. <parent>2. <groupId>org.springframework.boot</groupId>3. <artifactId>spring-boot-starter-parent&
什么是热部署? 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。在平时编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果要改变这样的方式,就需要用到热部署springloaded。使用方式,在项目中的pom.xml中plugin里添加依赖:<dependencies> <!--springloaded hot deploy -->
一、前言SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼: 编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了。这个时候如果想要对线上运行工程有一些微调,则非常痛苦, :(二、瘦身前的Jar包Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot也是可
一、简介 Tomcat:Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat 5支持最新的Servlet 2.4和JSP 2.0规
一、判断大型网站的标准:1.pv(page views)网页的浏览量:一个网站所有的页面,在24小时内被访问的总的次数。千万级别,百万级别,2、uv值(unique vistor)独立访客:一个网站,在24小时内,有多少个用户来访问我们的网站。达到10万3、独立ip(重点内容):一个网站,在24小时内,有多少个ip来访问我们的网站。uv值约等于独立ip.如果要考虑局域网,uv值略大于独立ip二、大
浅谈使用springsecurity中的BCryptPasswordEncoder方法对密码进行加密(encode)与密码匹配(matches)spring security中的BCryptPasswordEncoder方法采用SHA-256 +随机盐+密钥对密码进行加密。SHA系列是Hash算法,不是加密算法,使用加密算法意味着可以解密(这个与编码/解码一样),但是采用Hash处理,其过程是不可
Spring Boot 各版本的Java版本要求Spring Boot 与 Java 对应版本,以下表格由官方网站总结。官网:https://spring.io/projects/spring-boot#learn https://docs.spring.io/spring-boot/docs/{verion}/reference/htmlsingle/Go to [9.
Spring Boot的版本选择一般是这样的,如下图:那版本号后面的英文代表什么含义呢?具体含义,如下文所示:SNAPSHOT:快照版,表示开发版本,随时可能修改;M1(Mn):M是milestone的缩写,也就是里程碑版本;RC1(RCn):RC是release candidates的缩写,也就是发布预览版;Release:正式版,也可能没有任何后缀也表示正式版 刚才可以看
目录功能源码使用示例示例一:@PropertySource + @Value 示例二:@PropertySource 和 @ConfigurationProperties 示例测试功能 加载指定的属性文件(*.properties)到 Spring 的 Environment 中。可以配合 @Value 和
STOMP(Simple Text-Orientated Messaging Protocol) 面向消息的简单文本协议WebSocket是一个消息架构,不强制使用任何特定的消息协议,它依赖于应用层解释消息的含义;与处在应用层的HTTP不同,WebSocket处在TCP上非常薄的一层,会将字节流转换为文本/二进制消息,因此,对于实际应用来说,WebSocket的通信形式层级过低,因此,可以在 We
1、引入相关依赖<parent><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version>
报错内容java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"这个错主要发生在Spring-Sercurity5.X版本上,例如SpringBoot2.x。导致这个错误发生主要原因就是在之前版本中的NoOpPasswordEncoder被DelegatingPasswordEn
在springboot整合spring security 过程中曾遇到下面问题:(spring boot 2.0以上版本 spring security 5.x (spring security 4.x不知道是否会存在以下问题) ) springsecurity会自动屏蔽我们引用的css,js等静态资源,导致页面不
actuator服务监控与管理actuaotr是spring boot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restful api请求来监管、审计、收集应用的运行情况,针对微服务而言它是必不可少的一个环节。 Endpoints actuator的核心部分,它用来监视应用程序及交互,spring-boot-actuator中已经内置了非常多的Endpo
Spring Framework 自身提供了对定时任务的支持,本文介绍 Spring Boot 中 @Scheduled 定时器的使用。首先,在项目启动类上添加 @EnableScheduling 注解,开启对定时任务的支持import org.springframework.boot.SpringApplication;import org.springframework.boot.au
假设有这么一个需求,要求在项目启动过程中,完成线程池的初始化,加密证书加载等功能,你会怎么做?如果没想好答案,请接着往下看。今天介绍几种在Spring Boot中进行资源初始化的方式,帮助大家解决和回答这个问题。定义初始化类MyCommandLineRunner实现CommandLineRunner 接口,并实现它的run() 方法,在该方法中编写初始化逻辑注册成Bean
Spring Boot提供了一些注解和工具去帮助开发者测试他们的应用。1、添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>
1、pom文件第一行报错2.1.1会导致pom.xml文件第一行报错 (以后找个时间彻底解决此问题)2、servlet配置失效,需注意springboot 版本文件 2.0以后有所改动springboot集成spring securityspringboot版本问题和thymeleaf-extras-springsecurity5依赖问题spring secur
permitAll配置实例@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { http
SpringBoot默认的存放静态资源文件的位置是在:里面的。注:SpringBoot中的src/main/resources/资源文件夹对应classpath:。默认存放静态资源文件的位置,在SpringBoot项目中的文件夹位置为: 注意:此时默认的四个文件夹都失效了,如果想让默认的四个文件夹依然有效,那么可以在配置类中多次通过.addResourceHandler添加指定那四个文件
SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。SSL协议分为两层,SSL记录协议建立在TCP之上,为高层协议提供数据封装、压缩、加密等基本功能支持。SSL握手协议建立在SSL记录协议之上,用户实际数据传输开始前进行身份验证
Spring Boot中有一种非常解耦的扩展机制:Spring Factories。这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的。什么是 SPI机制SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。 简单的总结下java SPI机制的思想
@Param是MyBatis所提供的(org.apache.ibatis.annotations.Param),作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应//https://www.jianshu.com/p/6411776ba20f使用@Param时注意的问题(1)、当用@Param注解来声明参数时,使用#{}或者${}都可以(2)、当不使用@Param注解时,必
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号