---
type: practical
---

## Lombok
### `@AllArgsConstructor`(onConstructor_=@Annotation)
- Creates a public constructor which takes in all args
- `onConstructor_`: Places an annotation on the constructor

### `@Data`
A shortcut for `@ToString`, `@EqualsAndHashCode`, `@Getter` on all fields, and `@Setter` on all non-final fields

## Spring

### `RestController`
Extends Controller. Used to declare a class as a REST controller
### `@Autowired`
- Annotates a constructor
- Basically, it figures out dependency injection on its own

### `@[Get/Post/Put/Delete]Mapping("/path/")`
Makes an endpoint at path.

### `@RequestParam`
Describe the param and type

```java
@GetMapping("/api/foos")
@ResponseBody
public String getFoos(@RequestParam String id) {
    return "ID: " + id;
}
```



### Beans
![[Beans.canvas|Beans]]

