spring boot 添加默认根路径跳转
同一组数据分组需求:一个 list 里可能会有出现一个用户多条数据的情况。要把多条用户数据合并成一条。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 public static void main(String[] args) { List<User> users = Arrays.asList( new User(1, "liu big big", "123456789"), new User(2, "liu big big", "987654321"), new User(3, "su xiao xiao", "55555555& ...
springboot打war包
spring boot 在内置了 tomcat,但是会使用到外置 tomcat 的情况。在使用外置 tomcat 时需要让 spring boot 的打包方式打成 war 包。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273<build> <finalName>fund</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> < ...
CommandLineRunner 指定启动顺序
这个实际是可以用来当用启动时加载某些程序,相当于以前的 static{ } 这种块。这种方式优雅的多。
12345678910@Component@Order(value=1)public class Runner1 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("执行顺序 -> 1"); }}
12345678910@Component@Order(value=2)public class Runner2 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("执行顺序 ...
spring boot 添加自定义 fliter
自定义的 springboot 过滤器要注册到 spring boot中, 首先先添加一个过滤器,然后在spring boot 进行注册即可。
12345678910111213141516171819202122232425import com.reapal.openapi.web.filter.XSSFilter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * Title: 注册自定义过滤器 * Description: * * @author liu kai * @date 2018/6/26 16:06. */@Configurationpublic class XssFilterConfig { @Bean public FilterReg ...
springboot + vue 跨域处理
在使用 vue 做前端开发时,碰到 vue 请求接口出现跨域问题。解决的方法,就在后台添加一个跨域请求的过滤器,来添加跨域支持。
123456789101112131415161718192021222324252627282930313233343536373839import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Title: 跨域处理 * Description: * vue 请求服务跨域处理 * @author liu kai * @date 2018/6/14 10:38. */@Componentpublic class CorsFilter implements Filter { @Override ...
springboot使用pagehelper报错解决方法
问题springboot项目使用SpringMVC的pagehelper报错。
先说结论springboot 不能使用pagehelper的4.1.x 和 5.1.x,而需要使用 pagehelper-spring-boot-starter
起因同事的新项目使用 Spring boot,之前是 SpringMVC 所以把pom.xml直接复制过来,一跑就报各种错,各种谷歌百度都不管用。查看 pom 依赖的包后,决定对他一顿老拳。
正确的示例而必须使用,否则 yml 配置无效。
12345<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.1.2</version></dependency>
坑一个是一个的示例,谁用谁脱发12345<dependency> <groupI ...
getWriter() has already been called for this response 的解决办法
问题在使用springboot时,发现有个同事报了一个错:
getWriter() has already been called for this response错误提示也比较明显,是被调用过了。
出错的部分代码如下:
12345678910111213141516171819202122232425try { //有问题的部份 //PrintWriter out = null; //out = response.getWriter(); //String json = new ObjectMapper().writeValueAsString(map); //out.write(json); //out.flush(); //out.close(); outputStream = response.getOutputStream(); String json = new ObjectMapper().writeValueAsString(map); outputStream.write(json.getBytes()); outputStr ...
spring boot @Bean源码分析
1.先看下 Bean 注解的内容
123456789101112@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Bean { @AliasFor("name") String[] value() default {}; @AliasFor("value") String[] name() default {}; Autowire autowire() default Autowire.NO; String initMethod() default ""; String destroyMethod() default AbstractBeanDefinition.INFER_METHOD;}
Target 中指定了 ...
spring boot 解决生产环境下多线程调用FTP流被关闭问题
前言在 spring boot 下把 FTP 工具类以类的型式注入到 spring 容器中。FTP 工具类在实际应用过程中,如果是单例的对象会出现问题:当线程 A 调用FTP工具时调用连接,线程B 同时调用FTP并使用完闭关闭流,这时A的连接会就被关闭了。
解决方案将 Bean 置为多例对象。这样当线程每次调用该 Bean 就会生成一个新对象,互相之间不影响。
12public class FtpUtil {}
12345678910111213@Configurationpublic class FtpUtilConfig { @Autowired private FtpProperties ftpProperties; @Bean @Scope("prototype") public FtpUtil ftpUtil () { FtpUtil ftpUtil = new FtpUtil(); return ftpUtil; }}
1234 ...
springboot中的@ConfigurationProperties注解的使用
ConfigurationProperties 注解的使用将配置文件中的配置,以属性的形式自动注入到 实体中。要特别说明的一个注属性ignoreUnknownFields = false这个超好用,自动检查配置文件中的属性是否存在,不存在则在启动时就报错。locations 这个注解属性,不知道为什么不可以使用。用来指定其他配置文件名。
1.application.properties 配置
12345#自动配置设置service.properties.name=my-test-nameservice.properties.ip=192.168.1.1service.user=kayleservice.port=8080
2.对应实体Properties 就是对应的配置文件中的 properties,注意也要给 get/set也就是说,配置文件中的前缀是什么, prefix 中就使用什么。成员变量就是对应的配置文件的第二级属性名。
12345678910111213141516171819202122232425262728293031323 ...