springboot 入门(一)
1.idea 搭建springboot项目
https://www.cnblogs.com/xiongzaiqiren/p/12466652.html
2.运行springboot demo
1.目录结构
可以看到的是,Application类,也就是启动类,是在整个包的最外层的,这个位置不要变化。否则启动的时候没问题,实际发起请求的时候,就要抛异常了。
除了放错位置,会抛出异常,另外2个原因也会抛出异常,具体可见https://www.cnblogs.com/lilinzhiyu/p/7921890.html
2.启动类。使用idea创建springboot项目时,自动生成启动类。
启动之后,可以看到起了一个线程。
3.创建controller包,写个controller类,测试一下。
@RestController public class HelloController { @RequestMapping("/hello") public Object hello(){ return "hello,world"; } }
通过浏览器,发起请求127.0.0.1:8080/hello,获得返回结果:hello,world
3.springboot接口返回json
1.创建一个User.java类,属性为name和age。然后,使用idea自带的generator功能为这两个属性分别增加set和get属性。
2.创建一个UserController.java类,注意使用@ResponseBody注解,这样才能返回json格式。
@Controller @RequestMapping("/user") public class UserController { @RequestMapping("/getUser") @ResponseBody public User hello(){ User user = new User(); user.setName("anson"); user.setAge(18); return user; } }
3.运行启动类,通过浏览器,发起请求127.0.0.1:8080/user/getUser,获得返回结果:{name: "anson",age: 18}
4.springboot 热部署
1.热部署,就是如果项目文件(无论是源文件还是配置文件)被修改了,不需要手动编译和重启服务,编译器会自动识别,然后编译或者获取改动,并且自动重启服务。
2.要使用使用spring-boot-devtools.jar包实现。
具体实现为,现在pom.xml中引入依赖包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency>
注意,<optional>true</optional>,这样热部署才能生效
然后,配置application.properties(这个文件在idea创建springboot 项目的时候,就自动生成了)
#关闭缓存,及时刷新 spring.thymeleaf.cache=false #热部署生效 spring.devtools.restart.enabled=true spring.devtools.restart.additional-paths=src/main/java
其中,spring.devtools.restart.additional-paths 这个属性是让设置热部署检查变更的范围,不在这个文件夹下的变更,热部署是不生效的。
最后,如果按照以上的配置还不能实现热部署,那么,查一下idea的配置。
在属性配置中,勾选上 compiler->build project automatically
然后,回到编译器页面,command+shift+A 跳出的窗口 输入registry ,选择Registry...,再勾选compiler.automake.allow.when.app.running。
再试试,应该就可以了。
最后的最后,如果还是不能实现热部署,那检查一下idea 是不是开了多个项目,这个是个坑。把其他项目关掉,只剩自己的这个springboot项目,再试试,应该就可以了。