-
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类,测试一下。
1
2
3
4
5
6
7
|
@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格式。
1
2
3
4
5
6
7
8
9
10
11
12
|
@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中引入依赖包
1
2
3
4
5
6
|
<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 项目的时候,就自动生成了)
1
2
3
4
5
|
#关闭缓存,及时刷新 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项目,再试试,应该就可以了。
原文:https://www.cnblogs.com/ansonwan/p/15449092.html