Spring Boot : 自动JSON转换和热部署(二)
来源:互联网 发布:欧莱雅 曼秀雷敦 知乎 编辑:程序博客网 时间:2024/06/05 00:37
目录
- 目录
- Spring Boot 请求传参
- Spring Boot JSON转换
- Spring Boot 热部署
1.Spring Boot 请求传参
先举几个简单请求传参的例子,其实和注解式开发很像。
package cn.milo.controllor;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.*;/** * Created by admin on 2017/6/25. *//*@RestController is a stereotype annotation that combines @ResponseBody and @Controller.@RestController注解相当于@ResponseBody + @Controller合在一起的作用。@EnableAutoConfiguration注释,此注释自动载入应用程序所需的所有Bean */@RestController@EnableAutoConfigurationpublic class SampleController { //请求 http://localhost:8080/ @RequestMapping("/") public String HelloWorld(){ return "Hello Spring Boot"; } //请求 http://localhost:8080/demo2 @RequestMapping("/demo2") @ResponseBody public String demo2(){ return "hello world2"; } //请求 http://localhost:8080/demo4/milo @RequestMapping("/demo4/{username}") @ResponseBody public String demo4(@PathVariable("username") String username){ return "hello " + username; } //请求 http://localhost:8080/demo4/5 (这里的id可以动态识别为int) @RequestMapping("/demo5/{id}") @ResponseBody public String demo5(@PathVariable("id") int id){ return "hello " + (id + 21) ; } @RequestMapping(value = "/demo6" , method = RequestMethod.GET) @ResponseBody public String demo6(){ //get 请求 return "hello world6"; } @RequestMapping(value = "/demo7" , method = RequestMethod.POST) @ResponseBody public String demo7(){ //post请求 return "hello world7"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); }}
2.Spring Boot JSON转换
Spring Boot自动可以将对象转换成JSON返回。
写一个User的类如下:
package cn.milo.bean;/** * Created by admin on 2017/6/26. */public class User { private String username; private String nickname; private int age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
在Controller中添加
@RequestMapping("/demo9") @ResponseBody public User demo9() { User user = new User(); user.setAge(18); user.setUsername("milo"); user.setNickname("milo123"); return user; }
请求 http://localhost:8080/demo9 页面如下:
3.Spring Boot 热部署
我们开发过程中经常会出现改了一行java代码也要重启tomcat,而且有时候项目比较大,重启tomcat要将近10s的时间。Spring Boot为我们提供了热部署功能
方式一 : spring-boot-devtools (spring-boot:run和执行main方法均有效)
spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是比速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader
,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)本段引用自 : (40). springboot + devtools(热部署)【从零开始学Spring Boot】
pom.xml添加依赖
<!-- 热部署 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional></dependency>
插件中添加fork属性
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration></plugin>
方式二(反面教程) : springloaded 这种方式我在idea上测试一直没有通过,pom.xml配置如下:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <!-- spring热部署 --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.6.RELEASE</version> </dependency> </dependencies></plugin>
这几天我会再研究下这个,有结果再补充吧,哪位同学在IDEA用这种方式配置成功的话请赐教 - -#
最后说下IDEA默认是不自动编译的,所以要开启IDEA自动编译如下操作:
第一步:将Make project automatically打钩
第二步 : command + shift + A (mac IDEA) / ctrl + shift + alt + A (win IDEA) 后输入Registry , 勾选compiler.automake.allow.when.app.running
- Spring Boot : 自动JSON转换和热部署(二)
- [二]Spring Boot 热部署
- spring boot 热部署
- Spring Boot热部署
- spring boot 热部署
- spring boot热部署
- spring boot热部署
- Spring BOOT 热部署
- spring boot热部署
- Spring Boot 热部署
- spring boot热部署
- Spring Boot 热部署
- Spring Boot热部署
- Spring Boot-------热部署
- spring boot 热部署
- Spring-boot 热部署
- Spring Boot热部署spring-boot-devtools
- Spring boot --------(1)热部署
- tomcat和HTTP协议详解
- 20170626 Linux Window System infrastructure
- 嵌入式linux网络编程之I/O多路复用select
- hiho-hihoCoder挑战赛29-D-不上升序列
- 连续整数的和
- Spring Boot : 自动JSON转换和热部署(二)
- bzoj 1704: [Usaco2007 Mar]Face The Right Way 自动转身机
- Android源码下载和编译
- Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包
- Soot:从头创建一个类
- 算法十七周解题报告
- MongoDB入门
- 集合中的Iterator抛出的ConcurrentModificationException源码分析
- 安卓游戏--浅塘之辅助开发(C/S模式)