解决 Cannot determine embedded database driver class for database type NONE
刚搭的新项目一启动就报错,一直就知种起不来。各种搜索以后总结两种解决方式。先看错误:
1234567Description:Cannot determine embedded database driver class for database type NONEAction:If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active).
处理方式一:排除两个默认配置
1@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
结论:没用
处理方式二: 可行 ...
springboot注解 @ConfigurationProperties和@EnableConfigurationProperties的区别
区别@EnableConfigurationProperties测试发现 @ConfigurationProperties 与 @EnableConfigurationProperties 关系特别大。
@EnableConfigurationProperties 文档中解释:当@EnableConfigurationProperties注解应用到你的@Configuration时,任何被@ConfigurationProperties注解的beans将自动被Environment属性配置。这种风格的配置特别适合与SpringApplication的外部YAML配置进行配合使用。
测试发现:1.使用 @EnableConfigurationProperties 进行注册
1234567891011121314151617181920212223242526272829@ConfigurationProperties(prefix = "service.properties")public class HelloServiceProperties { ...
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 ...
spring 解决 Cannot determine embedded database driver class for database type NONE
问题新项目搭建时,项目启不来,报了一个错。
Description:
Cannot determine embedded database driver class for database type NONE
Action:
If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active).
处理方式一: 排除两个默认配置排除两个默认配置
1234@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})public class Application { ...
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 ...
java 随机数生成器Random、ThreadLocalRandom、SecureRandom
简述java中常用的三个随机数类:
Random
ThreadLocalRandom
SecureRandom
Random 是最常用的类,ThreadLocalRandom 性能快,SecureRandom 注重安全。下面简单分析3个类的使用。
Random伪随机数生成器,可以传一个种子来生成随机数。种子就是一个指定的变量,用来参与生成随机数,如果什么都不传,默认使用System.nanoTime() 来参与生成。特点:Random 是线程安全的、不是加密安全的,因为是伪随机数。Random用到了compareAndSet + synchronized来解决线程安全问题,虽然可以使用ThreadLocal<Random>来避免竞争,但是无法避免synchronized/compareAndSet带来的开销。
生成指定范围随机数12345678910111213141516public class Test { //指定随机数范围 public static void getRandom1() { Random random = new R ...
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 中指定了 ...