包含标签 Spring 的文章

神了,SpringBoot启动仅需0.068s!

GraalVM是Oracle搞出来的一种高性能的虚拟机,可以显著的提高程序的性能和运行效率,非常适合微服务。 最近比较火的Quarkus框架默认支持,SpringBoot当前也开始跟上了步伐,在Spring Initializr网站可以看到,基于GraalVM的Spring Nativ……

阅读全文

杀鸡焉用牛刀?谈谈如何自己实现Api接口鉴权

现在前后端分离的趋势越来越明显了,后端正在逐渐开始做纯RESTful性质的服务,关于接口鉴权这个问题就是老生常谈了,目前常用的Spring Security + Jwt, Shiro + Jwt等极其繁琐的配置,仅仅为了实现一个小小的登陆功能,显得过于笨重繁杂了,本文来探讨一下如何自己实现一个简单优雅的JWT鉴权……

阅读全文

在SpringBoot应用中优雅的使用EhCache缓存

SpringBoot家族提供的spring-boot-starter-cache使用JCache(JSR-107)注解统一了不同的缓存技术的使用,很是方便,本文主要说说集成EhCache的一种较为优雅的方案。 引入依赖 implementation("net.sf.ehcache:ehcache") implementation("org.springframework.boot:spring-boot-starter-cache") 开启缓存自动装配 @EnableCaching // 开启 @SpringBootApplication class MyApplication fun main(args: Array<String>) { runApplication<MyApplication>(*args) } 使用缓存 ehcac……

阅读全文

IntelliJ IDEA:@Autowired注解出现Field injection is not recommended警告

在开发的时候,突然发现新版的IDEA在@Autowired注解上出现一个大大的警告(Field injection is not recommended) @RestController public class UserRestController { @Autowired private UserService userService; } 这谁忍得了?以我多年的使用Spring的经验来看,这段代码使用@Autowired来自动装配肯定没有问题,同时也一直是这么干的,虽然有人……

阅读全文

RestTemplate 跳过SSL证书验证

在使用RestTemplate请求接口的过程中,遇到HTTPS请求又没有证书的情况,只能通过配置来忽略证书验证了 package com.ewei.custom.yto.config import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.http.client.ClientHttpRequestFactory import org.springframework.http.client.SimpleClientHttpRequestFactory import org.springframework.web.client.RestTemplate import java.net.HttpURLConnection import java.security.SecureRandom import java.security.cert.X509Certificate import javax.net.ssl.HttpsURLConnection import javax.net.ssl.SSLContext import javax.net.ssl.SSLSocketFactory import javax.net.ssl.X509TrustManager /** * @author wuwenze * @date 2019-06-21 */ @Configuration class RestTemplateClientConfig { @Bean fun restTemplate(factory: ClientHttpRequestFactory): RestTemplate { return RestTemplate(factory) } @Bean fun simpleClientHttpRequestFactory(): ClientHttpRequestFactory { val factory = SkipSSLSimpleClientHttpRequestFactory() factory.setReadTimeout(30000) factory.setConnectTimeout(30000) return factory } class SkipSSLSimpleClientHttpRequestFactory : SimpleClientHttpRequestFactory() { override fun prepareConnection(connection: HttpURLConnection, httpMethod: String) { if (connection is HttpsURLConnection) { try { connection.setHostnameVerifier { _, _……

阅读全文

MockMvc WebFilter不生效问题解决

在SpringBoot项目中,配置了一个@WebFilter,正常启动没问题,但是通过MockMvc进行单元测试死活不生效 @Configuration @Order(1) @WebFilter(urlPatterns = ["/**"]) class HttpServletRequestWrapperFilter : Filter { override fun doFilter(req: ServletRequest?, resp: ServletResponse?, chain: FilterChain?) { when (req) { is HttpServletRequest -> chain?.doFilter(MyHttpServletRequestWrapper(req), resp) else -> chain?.doFilter(req, resp) } } } 后来搞了半天,原来在构建MockMvc对象时,需要手动添加过滤器,这坑爹的玩意儿。 @Before fun setUp() {……

阅读全文

SpringBoot与Vue前后端分离最佳实践

前后端分离的开发模式大家都很清楚了,甚是麻烦: 前端启动webpack-dev-server 后端启动接口服务 开启代理服务器,前端通过代理服务器请求后端接口(解决跨域问题) 但是这些东西对于后端来说,太麻烦了,直接把前端打包好的dist文件丢到后端静态服务器里面就好了。 至于前端的web……

阅读全文

Swagger2在SpringBoot中的集成指南

引入依赖Swagger2及Swagger2 UI <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <!-- swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency> 构建配置文件(基于JavaConfig) package com.wuwenze.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * @author wuwenze * @date 2019/1/28 */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.wuwenze.api")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("某电商平台在线API文档&q……

阅读全文

SpringBoot Admin 集成指南(v2.1.1)

SpringBoot Admin用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。 其常见的功能如下: 显示健康状况 显示详细信息,例如 JVM和……

阅读全文