My learning diary

Read Sheets in Java

If you need to programmatically read a Google spreadsheet in Java, the quickstart guide describes a class that does configuration, scoping and reading all in one. However, if you use Spring Boot, you would want to split it into configuration and service layers: // build.gradle ... dependencies { ... compile ('com.google.api-client:google-api-client') compile ('com.google.apis:google-api-services-sheets') ... } ... // Spring Boot // Your config layer should contain the Sheets bean: // Copied from: https://stackoverflow.

Continue reading "Read Sheets in Java"

Abstract classes and AOP

I wanted to avoid writing boilerplate code for CRUD in Spring Boot. But I failed - I could not make my child aspect get along with my child controller. Before adopting AOP, I had an abstract controller which the child controller inherited. CRUD worked well and I no longer needed to repeat the code for simple CRUD anymore. I was happy. // MyAbstractController public abstract class MyAbstractController<T extends UniversalModel> { private final .

Continue reading "Abstract classes and AOP"

Iterator to Stream

With Google Guava, you can transform an Iterator into a Stream with Streams.stream(...). But that API is only available from Guava 21. If you don’t want to use Guava or if your Guava version is below 21, you need an additional step to convert your Iterator to a Stream: Stream<String> stream = StreamSupport.stream( Spliterators.spliteratorUnknownSize( iterator, Spliterator.ORDERED ), false ); Reference: mkyong.

Continue reading "Iterator to Stream"