归档文章: Java

hissummer mock平台

hissummer mock平台数据库使用mongodb,前端使用vue ,后端springboot。

1. 首先安装mongodb, 版本需要大于3.2.0 , 因为使用到了mongodb runcommand的find命令。低版本的mongodb不支持。

2. 安装mongodb后,假设mongodb监听了端口号 27017

3. 下载mock平台软件
https://github.com/hissummer-mockserver/StandaloneJar/raw/master/mockserver-0.0.2-alpha.war (当前0.0.2版本)

4. 下载后执行

其中server.port 指定你的mock平台的端口号
spring.data.mongodb.host 是mongodb数据库的地址(这里我们部署到本地,所以指定为localhost)
spring.data.mongodb.port 是mongodb的端口号, 默认为27017

5. 启动后,打开 http://localhost:8081/ 即打开管理平台页面。

关于hissummer mockserver的项目介绍: 更多…

利用springboot实现http mock 服务

实现原理:
1. springboot 搭建一个http restul service, 实现一个/error 接口(自定义的错误接口)
2. 当我们访问该服务时例如在 http://localhost:8080/api , 假设我们的springboot没有/api的requestmapping, 那么内部转到我们的自定义错误返回 /error, /error 的逻辑则去找对应的数据库中有没有定义/api 的mock 规则. 如果找到,则返回对应的mock 报文.

更多…

spring mvc 设置允许responsebody序列化SerializationFeature.WRITE_DATES_AS_TIMESTAMPS

问题:
使用spring boot 2.0 后, 较新的spring mvc HttpMessageConverters 如果存在jackson 库时,则默认使用自动配置的Jackson2ObjectMapperBuilder生成的转换器对消息进行转化。 序列化的结果可能并不是我们期望的,这时我们需要通过设置。 spring的官方文档地址: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html#howto-customize-the-jackson-objectmapper
更多…

maven 编译单元测试用例代码但不执行

-Dmaven.test.skip=false -DskipTests=true

因为pom.xml 中设置了maven.test.skip为true后, 测试代码也不进行编译,也不进行执行。 但是因为我们需要手动执行单元测试,那么我们只能在mvn构建的时候手动指定 -Dmaven.test.skip=false -DskipTests=true, 这样可以保证单元测试代码,只是不执行而已。 这样我们用eclipse时,编译了单测代码后我们就可以右键选择想要执行的测试代码执行。 否则会提示class not found(测试代码未编译导致)

maven findbugs扫描并仅保留高优先级扫描结果

maven findbugs扫描并仅保留高优先级扫描结果。
我们希望将findbugs 扫描的结果联合到一个扫描结果文件,并过滤掉我们不想关注的问题类型, 并发送邮件报告给相应的人员。

  • 1.第一步拉取代码
  • 2.获取到最后一提交人的邮箱地址
  • 3.编译代码和findbugs扫描(指定过滤器)
  • 4.得到结果并合并
  • 5.转换输出报告的格式未html

更多…

如何加快maven编译速度

随着项目代码越来越多, 编译的速度也越来越慢。 为了提高编译效率,如何加快maven编译速度呢?

1) 并发编译

-T 4 的含义是指定4个线程

-T 1C 的含义是一个cpu 内核开启一个线程 (如果我们有8核cpu可用,1个core一个线程, 则使用8个线程)

2)增加maven执行时的java 可使用内存大小

 

然后再执行mvn clean install 开始编译。

 

tomcat启动springboot application提示“LoggerFactory is not a Logback LoggerContext but Logback is on the classpath”

tomcat 部署springboot application后(打包成war包部署),提示如上错误。根据下面的堆栈错误原因, 可知slf4j 提供的LoggerFactory 并没有使用Logback 上下文, 但是logback的库被引入到了我们的工程里。 这时候springboot 应用启动的时候, spring框架广播了一个事件, LoggingApplicationListener 侦听到了该事件后,启动了检查工作,发现logback并没有启用, 报了如上错误。 查看如此解决办法可以想到有2个办法。 1)  移除logback 包 , 错误里也提示的比较明确, 使用默认的 log4j 管理日志打印。(因为错误已经明确提示告诉我们,org.apache.logging.slf4j.Log4jLoggerFactory 被默认加载了。 ) 2) 移除log4j , 让slf4j 使用logback 上下文。
更多…

springboot不使用数据库时,如何规避autoconfiguration时提示错误

Spring Boot – Cannot determine embedded database driver class for database type NONE

我们需要在springbootApplication 上加上如下注释, exclude 排除如下的自动配置,即可。

@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

springboot 健康检查 MessagingException: 501 Syntax: HELO hostname

springboot 健康检查 MessagingException: 501 Syntax: HELO hostname

 

原因,该机器的dns服务地址未配置正确。 例如本服务器的hostname为 service,但是service 不能正确解析。

1.  可以直接修改 /etc/hosts  将本服务器的hostname 映射成为 127.0.0.1

或者

2. 可以springboot 添加配置项直接设置为本机ip地址。

 

spring boot 单元测试