useful-dev-notes

To Reduce use of @Autowired

  1. PreReq:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency> 
  1. In your class
// Use @RequiredArgsConstructor
@RequiredArgsConstructor
public class YourComponent implements IComponent {
	// note that final is important as it make the dependency a required one
    // will not work without final
	private final @NonNull RestTemplate restTemplate;
	/* // The Generated code
	public YourComponent(@NonNull RestTemplate restTemplate) {
		this.restTemplate = restTemplate;
	}
	*///
}
  1. If using with @Qualifier
// Use @RequiredArgsConstructor
@RequiredArgsConstructor
public class YourComponent implements IComponent {
	private final @NonNull
	@Qualifier("name") RestTemplate restTemplate;
	
	/* // The Generated code
	public YourComponent(@Qualifier("name") @NonNull RestTemplate restTemplate) {
		this.restTemplate = restTemplate;
	}
	*///
}