以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。
简化了Model层的代码的编写
以前pojo类、实体类,需要自己提供set get toString equals hashCode
lombok通过各种注解,简化了以上操作。
-
IDea 安装下载Lombok插件
-
添加lombok依赖包
<dependencies>
<!--支持lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
SpringBoot热部署
作用
每次修改代码修改之后,需要手动的重启服务器. 在开发阶段 能否有一种高效的机制. 每次修改代码之后程序自动重启
添加依赖
<!--SpringBoot核心机制: "开箱即用"
只需导入特定的jar包文件 则可以直接使用其中的功能
根本原因: SpringBoot是对框架的简化,内部进行了扩展,无需程序员操作.
-->
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
配置IDEA
触发机制: 程序的代码被修改了之后需要重启,需要配置IDEA自动的编译代码触发修改的状态.
组合键: ctrl + shift + alt + / 或者 ctrl + alt + a
Spring整合SpringMVC的项目实战
Spring用来管理项目中的所有Bean,需要使用注解@Component @Autowired @Service @Component等
Springmvc用来管理Controller层,需要使用的注解有@RestController @RequestMapping等
需求!
访问链接: http://localhost:8080/car/get
得到JSON数据: {"name":"保时捷","color":"红色","price":641000.0}
创建RunApp.java
package cn.tedu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Runapp { public static void main(String[] args) { SpringApplication.run(Runapp.class); } }
//pojo类
package cn.tedu.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Car {
private Integer id;
private String name;
private String color;
private double price;
}
//抽象类
package cn.tedu.cn.tedu.serive;
import cn.tedu.pojo.Car;
public interface CarSerive {
Car get();
void add(Car c);
}
//实现
package cn.tedu.cn.tedu.serive;
import cn.tedu.pojo.Car;
import org.springframework.stereotype.Component;
@Component
public class CarSeriverImpl implements CarSerive {
@Override
public Car get() {
Car car = new Car();
car.setName("1");
return car;
}
@Override
public void add(Car c) {
}
}
//controller 类
package cn.tedu.controller;
import cn.tedu.cn.tedu.serive.CarSeriverImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("car")
public class Test1 {
@Autowired
private CarSeriverImpl carSeriver;
@RequestMapping("get")
public Object get(){
return carSeriver.get();
}
}