• 11选5走势图分析技巧 2019-09-30
  • 北京11选5胆拖计算器 2019-09-24
  • 11选5组选前三技巧 2019-09-23
  • 11选5摇奖模拟器 2019-09-16
  • 微信上广东11选5正规吗 2019-09-15
  • 11选5胆拖玩法对照表 2019-09-14
  • 体彩11选5前三组多少钱 2019-09-13
  • 11选5任选7软件 2019-09-12
  • 黑龙江新11选5开奖 2019-09-11
  • 广东11选5购彩网站 2019-09-10
  • 11选5拖计算器 2019-09-09
  • 北京体彩11选5开奖结果查询 2019-09-08
  • 11选5任6技巧集锦 2019-09-07
  • 福建11选5开奖结果112期 2019-09-06
  • 河北11选5遗漏数据 2019-09-05
  • 您好,欢迎来到景安网络!
    加盟景安
    主页 >服务器配置 >如何使用Fastjson解析+热部署

    如何使用Fastjson解析+热部署


    来源:景安网络发表日期:2018-05-24浏览次数:Tags:Fastjson
    景安网络专业的数据中心服务商,长期提供数据中心托管服务,私有云,互联网解决方案,互联网增值服务。针对工信委大力实施“万企业上云”计划,景安以我所能,为你而+,推出1元即可上云,核心云计算产品降幅达50%

    澳门国际赌场 www.qilebang.com 今天给大家分享一篇Demi的原创教程,非常感谢这位集美貌与才华于一身的程序猿小姐姐,此处掌声应该再热烈一些。

     

    废话不多说,直接上干货。
     

    Fastjson

     

    自定义fastjson解析

     

     

    1. 创建简单的Springboot进行测试,建立一个无骨架的maven文件(无骨架:一路next下去),在pom.xml中添加:

     

     

    <!--父节点 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
        <!--spring-boot-starter-web: MVC,AOP的依赖包....-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    

     

    2. 下载完成,咱们就可以去搭建工程了,当然为了测试,首先创建一个Controller,实例如下:

     

    Fastjson

     

    3.你会发现已经部署完成,直接点击运行,打开浏览器输入

    http://localhost:8080

    网页展示“hello world”表示搭建成功。

     

    4.添加自定义fastjson解析json数据,pom.xml:

     

    <dependency>
        <!--persistence-api: @Entity....-->
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0.2</version>
    </dependency>
    

     

    5.实体类:

     

    @Entity
    public class User {
        private int id;
        private String name;
        private int age;
        private Date creatTime;
        public User(int id, String name, int age, Date creatTime){
            //省略
    
    }
       @Override
        public String toString() {
           //省略
        }
    }
    

     

    6.控制器:

     

    @Controller
    public class UserController {
        @RequestMapping("getData")
        @ResponseBody
        public User getData(){
            User user=new User(1,"张三",22,new Date());
            return user;
        }
    }
    

     

    7.启动类:

     

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

     

    8.项目结构如图:

     

    Fastjson

    9.运行App.java,打开浏览器输入:

    http://localhost:8080/getData:

     

    Fastjson

     

    10.现在我们要将creatTime解析成“yyyy-MM-dd HH:mm:ss”格式,pom.xml:

     

    <!--添加fastjson 依赖包.解析json数据-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.15</version>
    </dependency>
    

     

    11.第一种方式:使用@Bean注解。

     

    @SpringBootApplication
    public class App {
       @Bean
        public HttpMessageConverters fastJsonHttpMessageConverters() {
                // 1、需要先定义一个 convert 转换消息的对象;
                FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    
                //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
                FastJsonConfig fastJsonConfig = new FastJsonConfig();
                fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    
                //3、在convert中添加配置信息.
                fastConverter.setFastJsonConfig(fastJsonConfig);
                HttpMessageConverter<?> converter = fastConverter;
                return new HttpMessageConverters(converter);
            }
        public static void main(String[] args){
            SpringApplication.run(App.class,args);
        }
    

     

    12.第二种方式:启动类继承WebMvcConfigurerAdapter类。

     

    @SpringBootApplication
    public class App extends WebMvcConfigurerAdapter {
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            super.configureMessageConverters(converters);
    
            // 1、需要先定义一个 convert 转换消息的对象;
            FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    
            //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
            FastJsonConfig fastJsonConfig = new FastJsonConfig();
            fastJsonConfig.setSerializerFeatures(
                    SerializerFeature.PrettyFormat
            );
    
            //3、在convert中添加配置信息.
            fastConverter.setFastJsonConfig(fastJsonConfig);
            //4、将convert添加到converters当中.
            converters.add(fastConverter);
        }
    
        public static void main(String[] args){
            SpringApplication.run(App.class,args);
        }
    
    }
    

     

    推荐第二种方式,因为如果碰到了乱码问题,第二种解决乱码更为便捷,添加如下代码即可:

     

    List<MediaType> fastMediaTypes = new ArrayList<>();
    fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
    fastConverter.setSupportedMediaTypes(fastMediaTypes);
    

     

    最后一定不要忘了在实体类中添加注解:

     

     

     

    若不希望接口返回一个属性,则使用 @JSONField(serialize = false)。

     

    热部署

     

    在上述整个过程中,你会发现如果修改代码就需要重新运行App.java,这种方式在整个开发过程中是非常浪费时间的,所以这个时候就需要使用热部署来提高开发效率。

     

    1.pom.xml:

     

    <!-- 热部署,spring boot devtools 依赖包.底下还要构建节点 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
        <scope>true</scope>
    </dependency>
    

     

    2.构建节点:

     

    <build>
        <!--添加Spring boot的插件-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

     

    3.Eclipse这样设置就OK了,但是IDEA还不行,这是因为当我们修改了代码之后,IDEA默认是不会进行自动编译的,而spring-boot-devtools又是监测到classpath下的文件发生变化才会重启应用,所以需要设置IDEA的自动编译:

     

    1.CTRL+SHIFT+A-->查找make project automatically--> 选中。


    2.CTRL+SHIFT+A-->查找Registry--> 

    compiler.automake.allow.when.app.running。

     

    3.指定文件进行热部署。

     

    Fastjson

     

    源码:

     

    github

    https://github.com/southwind9801/springboot_hibernate01.git

    https://github.com/southwind9801/springboot_mybais02.git

    0(好文)
    0(太水)
    版权声明:部分文章源于网络,如侵权请联系我们删除
    1元上云

    专题页