springboot(2)

springboot 集成fastjson 和juint

上篇文章用到了一些注解
@Controller、@RestController、@RequestMapping,下面简单介绍一下

  1. @Controller 创建 处理 http请求的对象 其实就是 mvc中的c
  2. @RestController Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。
  3. @RequestMapping:配置url映射

这篇文章主要记录一下 springboot集成junit和fastjson, log

首先 先看一下 springboot集成test

  • 在test目录下随便建一个测试类,然后加上注解 @SpringBootTest即可,就这么简单
@RunWith(SpringRunner.class)
@SpringBootTest
public class CommonTest {
    @Test
    public void test () {
        System.out.println(123);
    }
}

第二点 javaweb 最常用的就是json转换和 log日志,首先看一下json转换 比较倾向于阿里爸爸的 fastjson
首先gradle 添加记录

compile 'com.alibaba:fastjson:1.2.31'

然后自己写个JsonUtil

package com.naonao.util;

import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Component;

/**
 * Created by naonao on 17/4/5.
 */
@Component("fastJsonUtil")
public class FastJsonUtil {
    public String toJson(Object object) {
        if (null == object) {
            return "";
        }
        return JSON.toJSONString(object);
    }
}

测试一下fastJsonUtil 可以用不

package com.naonao;

import com.naonao.api.TestController;
import com.naonao.util.FastJsonUtil;
import com.naonao.vo.TestUser;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * Created by naonao on 17/4/5.
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class CommonTest {
    @Autowired
    private TestController testController;

    @Autowired
    private FastJsonUtil fastJsonUtil;

    @Test
    public void test () {
        System.out.println(123);
    }
    @Test
    public void testUser1() {
        TestUser user = new TestUser();
        TestUser t = testController.test(user);
        System.out.println(t.getAge() + "  " + t.getName());
        System.out.println(fastJsonUtil.toJson(t));
    }
}

看一下输出

{"age":12,"name":"qwe"}

还有就是用fastjson替换boot自带的json有两种方法
1.启动类继承extends WebMvcConfigurerAdapter

package com.naonao;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.util.List;

@SpringBootApplication
public class NaonaoServiceSoaApplication extends WebMvcConfigurerAdapter {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);

        FastJsonHttpMessageConverter converter= new FastJsonHttpMessageConverter();

        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        converter.setFastJsonConfig(fastJsonConfig);
        converters.add(converter);
    }

    public static void main(String[] args) {
        SpringApplication.run(NaonaoServiceSoaApplication.class, args);
    }
}

然后 在pojo TestUser做如下操作

package com.naonao.vo;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;

/**
 * Created by naonao on 17/4/4.
 */
@Data
public class TestUser implements Serializable {
    private int age;
    private String name;
    @JSONField(serialize = false)
    private int id;
}

刚刚写的测试类测试一下

{"age":12,"name":"qwe"}

如果把id上面的JsonFiled 注解去掉的话

{"age":12,"id":1,"name":"qwe"}

2 在启动类中,注入Bean : HttpMessageConverters

@Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        converter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter1 = converter;
        return new HttpMessageConverters(converter1);

    }

实际上两个方法异曲同工

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值