SpringBoot
二十六画生的博客
国内Top5硕士,先后在京东、字节从事多年后端开发、大数据开发。
展开
-
关于maven依赖中的<scope>provided</scope>使用
今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </depend原创 2021-03-18 10:16:01 · 1315 阅读 · 0 评论 -
SLF4J: Class path contains multiple SLF4J bindings.
启动时warning:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/Users/xcv/Documents/maven/MavenRepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3...原创 2019-12-27 15:46:32 · 517 阅读 · 0 评论 -
maven profile <filtering>true</filtering>的作用
1 在pom.xml中 <!--<filtering>true</filtering>--> 被注释掉打包时能替换文件名,但是不能替换文件里面的标识符,启动项目时报错。2在pom.xml中 <filtering>true</filtering>打包时能替换文件名,也能替换文件里面的标识符:启动时正常-----...原创 2019-12-05 14:48:37 · 14041 阅读 · 3 评论 -
Test.initializationError » No runnable methods,Maven打包时跳过单元测试
打包时会把Test类及@Test修饰的方法执行一遍。报错原因是Test类中不含有@Test修饰的方法。方法1:不推荐。在报错的Test类中添加一个@Test修饰的方法。import org.junit.Test;..... @Test public void f1() { }方法2:在pom.xml中添加: <!--ma...原创 2019-12-05 14:23:18 · 2084 阅读 · 0 评论 -
SpringBoot使用@Scheduled执行定时任务
一直不执行,发现没有配置: <task:annotation-driven/>这个配置的作用就是使@Scheduled注解生效整体配置如下:1 spring-task.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.or...原创 2018-12-25 19:53:29 · 1402 阅读 · 0 评论 -
Spring Aspect不运行
Aspect类要加@Component注解才行@Component//这个注解必须要有,不然切面无法执行@Aspectpublic class SysLogAspect {end原创 2018-12-27 20:22:24 · 1314 阅读 · 1 评论 -
@RequestBody的作用
1 不使用@RequestBody,每个属性对应一个参数,参数在请求的URL中 @PostMapping("/insert") public int insert(AreaAddDTO areaAddDTO) { return areaService.insert(areaAddDTO); }swagger显示如下:2 使用@Request...原创 2018-12-19 20:11:18 · 8170 阅读 · 3 评论 -
IDEA集成Tomcat之后的日志路径
C:\Users\姓名拼音\.IntelliJIdea2018.1\system\tomcat\Unnamed_weather-expert_2\logsSpringBoot自带Tomcat的日志路径暂不知道原创 2018-11-21 15:10:33 · 5678 阅读 · 0 评论 -
@Configuration,@Autowired ExecutorService 不必重复初始化线程池
不必每次都重新写一遍线程池初始化的代码,只需要@Autowired ExecutorService 即可。import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.ste...原创 2018-11-12 20:19:39 · 2710 阅读 · 0 评论 -
PostMapping,GetMapping访问多个路径,报错500解决
PostMapping中的value属性是数组,所以可以定义多个路径,required属性默认是true,不必再写required=true,默认表示该参数是必须要有的,如果写required=false,表示该参数是可选的,可有可无。1: @PostMapping("/queryCurWeatherNullById/{id}/{name}") @Override ...原创 2018-11-02 18:43:53 · 18846 阅读 · 2 评论 -
fetch请求,No ‘Access-Control-Allow-Origin‘ header的解决方法,SpringBoot支持跨域
Failed to load http://localhost:8080/a/b: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had...原创 2018-10-10 19:12:15 · 18602 阅读 · 0 评论 -
mapstruct的用法-qualifiedByName
qualifiedByName的意思就是使用这个Mapper接口中的指定的默认方法去处理这个属性的转换,而不是简单的get set。网上一直没找到...可用于格式化小数位等,在po转换为vo时就已格式化小数位完成,所以不必单独再写代码处理小数位。1 引用pom1 ,能正常使用mapstruct的注解,但不会生成Impl类 <!-- https://mvnrepos...原创 2018-12-25 21:02:21 · 15349 阅读 · 1 评论 -
mapstruct的用法-numberFormat
这里要注意,是String转Number或Number或String才有效,如果是Number转Number或其他类型的转换均不生效,比如Double转Double(用于格式化小数位)时不生效。先浏览:mapstruct的用法-qualifiedByName,用的都是这里的类。1 在Mapper中定义方法如下:Number转Number @Mapping(source = ...原创 2018-12-25 21:25:25 · 4107 阅读 · 1 评论 -
mapstruct的用法-dateFormat
可先阅读:mapstruct的用法-qualifiedByName使用的类都是这里的。1 源类public class AreaPO { private String cityName; private Integer haveAir; private Double pm25; private String pm10Str; private Da...原创 2018-12-25 21:35:26 · 13038 阅读 · 3 评论 -
SpringBoot使用@EnableScheduling做定时任务
@Configuration@EnableSchedulingpublic class TaskConfig2 {}上面是配置类.某个其他类中:@Scheduled(cron = "0/2 * * * * ?")public void scheduleMethod() { logger.info(new Date() + ",EnableScheduling Schedu...原创 2019-01-11 23:47:29 · 4274 阅读 · 0 评论 -
SpringBoot 枚举类报错ExceptionInInitializerError的分析与解决
今天下午使用这个枚举类一直报错ExceptionInInitializerError,一直弄了快2个小时才排查出原因,终于发现和解决了!检查常量与枚举类是否存在相互依赖!!报错的代码如下:public class TestEnumClass { /** * 监控项 */ public enum ITEM { ITEMA(0.1, ...原创 2019-01-09 22:34:42 · 2137 阅读 · 0 评论 -
后端初始化变量,InitializingBean,static代码块
1InitializingBean初始化变量@Servicepublic class AirService implements InitializingBean { public static final Logger logger = LoggerFactory.getLogger(AirService.class); public static List<I...原创 2019-01-16 22:07:18 · 961 阅读 · 0 评论 -
InitializingBean,static代码块,哪个先运行
@Servicepublic class AirService implements InitializingBean { public static final Logger logger = LoggerFactory.getLogger(AirService.class); public static List<Integer> toBeUsedLis...原创 2019-01-16 22:10:40 · 2098 阅读 · 1 评论 -
SpringBoot启动报错,ExecutionException) java.lang.UnsupportedOperationException...
SpringBoot+Maven项目启动后报这个错。我是新导入的项目启动时报这个错,把原项目下的.idea文件夹删除后,再导入,启动时不再报错。Error:Internal error: (java.util.concurrent.ExecutionException) java.lang.UnsupportedOperationExceptionjava.util.concurrent...原创 2019-09-03 22:09:07 · 2434 阅读 · 0 评论 -
Spring Boot,Whitelabel Error Page解决方法
Application类也是在顶层目录下,看了一下Controller中的这个方法是Post,需要改成Get,因为浏览器通过手动输入的url只能访问get方法,此时访问不到post方法!WARN: 2018-09-26 18:51:52 [org.springframework.web.servlet.PageNotFound:255] Request method 'POST' not s...原创 2018-09-26 19:33:52 · 4316 阅读 · 0 评论 -
启动时运行,CommandLineRunner,InitializingBean
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。 为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。很简单,只需要一个类就可以,无需其他配置。 创建实现接口 CommandLineRunner 的类@Component //不添加@Component则不会运行该代码//@Or...原创 2018-08-24 10:25:09 · 5607 阅读 · 1 评论 -
ApplicationContextAware接口的作用
ApplicationContextAware接口的作用https://blog.csdn.net/bailinbbc/article/details/76446594Spring容器会检测容器中的所有Bean,如果发现某个Bean实现了ApplicationContextAware接口,Spring容器会在创建该Bean之后,自动调用该Bean的setApplicationContext...转载 2018-08-27 14:51:40 · 316 阅读 · 0 评论 -
@Controller,@ResponseBody,@RestController,@RequestMapping,@GetMapping作用
1,@Controller 处理http请求,作用在类上:package org.springframework.stereotype;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import ja...原创 2018-05-20 21:12:22 · 1663 阅读 · 0 评论 -
@Valid作用
package com.springmvc.entity;import org.hibernate.validator.constraints.Length;import javax.validation.constraints.NotNull;import java.io.Serializable;/** * Created by Vitelon on 2017-03-30 *...原创 2018-05-20 21:00:05 · 5204 阅读 · 1 评论 -
浏览器请求GET与POST的区别
通过浏览器的地址栏输入地址,所访问的URL都是get请求,因此如果以post定义方法,那么由于请求与实现的不一致,会返回405错误,method not allowed, The specified HTTP method is not allowed for the requested resource.这归根到底是因为浏览器发送了get请求,而方法只能处理post请求,所以发生的错误可能是这...转载 2018-05-20 15:45:27 · 10915 阅读 · 0 评论 -
log4j,Target、Threshold、layout配置实例
1#设置stdout的日志输出控制台log4j.appender.stdout=org.apache.log4j.ConsoleAppender#输出日志到控制台的方式log4j.appender.stdout.Target=System.err #会当作错误输出,全是红色的#日志级别,bebug及以上级别的均会输出。写成DEBUG也行log4j.appender.stdout.Thr...原创 2018-04-20 20:45:13 · 5809 阅读 · 0 评论 -
SpringBoot集成Quartz执行定时任务
第一步:pom文件添加: <!-- Quartz定时任务--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> ...原创 2018-02-08 20:08:28 · 926 阅读 · 6 评论 -
SpringBoot集成SpringTask执行定时任务
第一步:.yml文件添加配置:testTask: doTask: cron: 0 6 20 ? * * 第二步:新建配置文件spring-task.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/...原创 2018-02-08 20:22:31 · 2842 阅读 · 0 评论 -
Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.
Cron表达式,原因是:天(月的多少号)和天(周几)不能同时都为*,当有一个为*时,另一个要是?,才行。秒 分 时 天(月) 周 天(周) 年 一般年可以省略,如果是6位时,则是把年省略了。 <property name="cronExpression" value="0 48 17 * * * *" /> -- 报错 Support fo...原创 2018-02-08 09:51:23 · 9986 阅读 · 1 评论 -
@RequestParam,@PathVariable区别
@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是 @PathVariable 是从一个URI模板里面来取值(/后面?之前)@RequestParam 是从request里面取值(?之后)@RequestParam 支持下面四种参数defaultValue 如果本次请求没有携带这个参数,或者参数为空,那么就会启用默...转载 2018-05-20 22:14:34 · 643 阅读 · 0 评论 -
thymeleaf显示表格,for循环
<table border="1"> <tr> <th>用户名</th> <th>邮箱</th> <th>状态变量:index</th> <th>状态变量:count&原创 2018-06-13 11:17:05 · 52552 阅读 · 0 评论 -
@Value使用注意事项
在spring mvc架构中,如果希望在程序中直接使用properties中定义的配置值,通常使用一下方式来获取: @Value("${tag}") private String tagValue;但是取值时,有时这个tagvalue为NULL,可能原因有:使用static或final修饰了tagValue,如下: private static String tagValue; ...转载 2018-06-22 16:45:38 · 5269 阅读 · 0 评论 -
@WebInitParam,@WebServlet,@WebFilter
Servlet3.0注解@WebInitParam和@WebServlethttps://blog.csdn.net/qq924862077/article/details/52883973@WebServlet是用来配置servlet的属性的,@WebInitParam是用来配置一些初始化属性的。 Servlet中的过滤器Filter详解https://www.jianshu...转载 2018-08-27 11:34:12 · 2403 阅读 · 0 评论 -
SpringBoot 使用MockMvc进行Controller的测
对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等,这样会导致测试无法进行,为了可以对Controller进行测试,可以通过引入MockMVC进行解决。 MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Con...转载 2018-07-23 20:31:23 · 21958 阅读 · 3 评论 -
ResultActions.andExpect,andDo的疑问
关于Mock的疑问解答如下: 转自:http://jinnianshilongnian.iteye.com/blog/2004660http://jinnianshilongnian.iteye.com/blog/1893135转载 2018-07-23 20:24:35 · 3794 阅读 · 1 评论 -
SpringBoot Mock测试Controller
代码如下:@RestController@RequestMapping("/weather")public class WeatherController { private static final Logger logger = LoggerFactory.getLogger(WeatherController.class); @Autowired pri...原创 2018-07-23 20:18:08 · 3902 阅读 · 2 评论 -
打印所有SpringBoot载入的bean
@SpringBootApplicationpublic class Application { private static final Logger logger = LoggerFactory.getLogger(Application.class); public static void main(String[] args) { ApplicationC...原创 2018-06-28 09:57:22 · 9411 阅读 · 1 评论 -
thymeleaf的if条件--踩坑,合并单元格
for循环生成表格时:<!--如果带该if条件,若值为0或0.0时则不显示该td,会造成同一行后面的td空白,后面的数字会移到该单元格显示--><!--<td th:if="${info.num1}" th:text="${info.num1}"></td> --><td th:text="${info.num1}"原创 2018-06-20 10:13:31 · 20926 阅读 · 0 评论 -
SpringBoot获取配置值的两种方式
方法一:使用@Value()直接取值application.ymlweather: dt: 2018-06-09 humidity: 26AWeatherController.java@RestControllerpublic class AWeatherController { @Value("${weather.dt}") private String dt; ...原创 2018-06-10 11:28:48 · 12840 阅读 · 0 评论 -
Quartz java.lang.NoClassDefFoundError: org/quartz/JobDetail
pom中已经添加了 <!-- Quartz定时任务--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> ...原创 2018-02-08 09:42:11 · 5861 阅读 · 0 评论