人们宁愿去关心一个蹩脚演员的吃喝拉撒和鸡毛蒜皮,而不愿了解一个普通人波涛汹涌的内心世界...
前言
关于如何搭建SpringBoot工程以及开启Web功能,
可以查看我的这篇博客:用Spring Initializr快速构建SpringBoot及整合MVC
热部署
热部署可以让你在修改代码不重启项目的情况下,自动生效,简直不要太爽
第一步,在依赖管理文件pom.xml
中导入依赖;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
第二步,打开IDEA,左上角"File" -> “Settings”,或者点击IDEA工具栏的扳手图标
进入IDEA的设置,在"Build,Execution,Deployment"下找到"Compiler",再找到"Build project automatically",在前面的框框上面打上"√",再点击"OK"。
最后一步,打开运行时编译,首先按住快捷键 Shift+Ctrl+Alt+/
,点击"Register"
再选择"compiler.automake.allow.when.app.running"选项,在后面的方框中打上√,再点击右下角的"close"即可。
到此,大功告成!
测试一下
下面来让我们来测试一下热部署,顺便复习一下如何把一个Bean放入Spring容器中
先新建一个实体类:
package com.guqueyue.entity;
/**
* @author guqueyue
* @Date 2020/4/14
**/
//lombok插件的注解
@Data // 若未使用lombok插件,请自行生成getter、setter以及toString方法
@AllArgsConstructor // 若未使用lombok插件,请自行生成有参构造方法
@NoArgsConstructor // 若未使用lombok插件,请自行生成无参构造方法
@Accessors(chain = true) // 开启链式编程
public class Person {
private String name;
private Integer age;
}
再新建一个配置类
package com.guqueyue.config;
/**
* @author guqueyue
* @Date 2020/4/15
**/
@Configuration //表示当前类是配置相关的
public class WebConfig {
@Bean // 把方法的返回值放到Spring容器中,id就是方法名称
@Scope(scopeName = "prototype") // 设置单例或者原生
public Person person() {
// 创建一个对象
Person person = new Person()
.setName("小白")
.setAge(12);
return person;
}
}
然后创建Web层,如:
package com.guqueyue.controller;
/**
* @author guqueyue
* @Date 2020/4/15
**/
@RestController
public class TestController {
@Autowired // 注入person
private Person person;
@RequestMapping("/test")
public Person getPerson() {
return person;
}
}
启动程序,打开浏览器,输入"http://localhost:8080/test",显示:
说明Bean注入成功,再在person()中修改一下person
:
/**
* @author guqueyue
* @Date 2020/4/15
**/
@Configuration //表示当前类是配置相关的
public class WebConfig {
@Bean // 把方法的返回值放到Spring容器中,id就是方法名称
@Scope(scopeName = "prototype") // 设置单例或者原生
public Person person() {
// 创建一个对象
Person person = new Person()
.setName("小白")
.setAge(12);
// 修改这个对象
person.setName("大白(●—●)").setAge(19);
return person;
}
}
无须重新启动程序,直接刷新浏览器页面,显示:
则说明热部署成功!